home *** CD-ROM | disk | FTP | other *** search
/ Shareware Super Platinum 8 / Shareware Super Platinum 8.iso / mac / WIN_PRO / DS-1.ZIP;1 / RTT.ZIP / RTTPARSE.C < prev    next >
Encoding:
C/C++ Source or Header  |  1992-02-10  |  120.3 KB  |  3,086 lines

  1.  
  2. # line 8 "rttgram.y"
  3. #include "../h/gsupport.h"
  4. #include "rtt1.h"
  5. #define YYMAXDEPTH 250
  6.  
  7. # line 13 "rttgram.y"
  8. typedef union  {
  9.    struct token *t;
  10.    struct node *n;
  11.    long i;
  12.    } YYSTYPE;
  13. # define Identifier 257
  14. # define StrLit 258
  15. # define LStrLit 259
  16. # define FltConst 260
  17. # define DblConst 261
  18. # define LDblConst 262
  19. # define CharConst 263
  20. # define LCharConst 264
  21. # define IntConst 265
  22. # define UIntConst 266
  23. # define LIntConst 267
  24. # define ULIntConst 268
  25. # define Arrow 269
  26. # define Incr 270
  27. # define Decr 271
  28. # define LShft 272
  29. # define RShft 273
  30. # define Leq 274
  31. # define Geq 275
  32. # define Equal 276
  33. # define Neq 277
  34. # define And 278
  35. # define Or 279
  36. # define MultAsgn 280
  37. # define DivAsgn 281
  38. # define ModAsgn 282
  39. # define PlusAsgn 283
  40. # define MinusAsgn 284
  41. # define LShftAsgn 285
  42. # define RShftAsgn 286
  43. # define AndAsgn 287
  44. # define XorAsgn 288
  45. # define OrAsgn 289
  46. # define Sizeof 290
  47. # define Intersect 291
  48. # define OpSym 292
  49. # define Typedef 293
  50. # define Extern 294
  51. # define Static 295
  52. # define Auto 296
  53. # define Register 297
  54. # define Tended 298
  55. # define Char 299
  56. # define Short 300
  57. # define Int 301
  58. # define Long 302
  59. # define Signed 303
  60. # define Unsigned 304
  61. # define Float 305
  62. # define Doubl 306
  63. # define Const 307
  64. # define Volatile 308
  65. # define Void 309
  66. # define TypeDefName 310
  67. # define Struct 311
  68. # define Union 312
  69. # define Enum 313
  70. # define Elipsis 314
  71. # define Case 315
  72. # define Default 316
  73. # define If 317
  74. # define Else 318
  75. # define Switch 319
  76. # define While 320
  77. # define Do 321
  78. # define For 322
  79. # define Goto 323
  80. # define Continue 324
  81. # define Break 325
  82. # define Return 326
  83. # define Runerr 327
  84. # define Is 328
  85. # define Cnv 329
  86. # define Def 330
  87. # define Exact 331
  88. # define Empty_type 332
  89. # define Null 333
  90. # define String 334
  91. # define Cset 335
  92. # define Integer 336
  93. # define File 337
  94. # define Real 338
  95. # define List 339
  96. # define Set 340
  97. # define Table 341
  98. # define Record 342
  99. # define Procedure 343
  100. # define Co_expression 344
  101. # define Variable 345
  102. # define Tvsubs 346
  103. # define Tvtbl 347
  104. # define Kywdint 348
  105. # define Kywdpos 349
  106. # define Kywdsubj 350
  107. # define Named_var 351
  108. # define Struct_var 352
  109. # define Substr 353
  110. # define C_Integer 354
  111. # define C_Double 355
  112. # define C_String 356
  113. # define Tmp_string 357
  114. # define Tmp_cset 358
  115. # define Body 359
  116. # define End 360
  117. # define Function 361
  118. # define Keyword 362
  119. # define Operator 363
  120. # define Underef 364
  121. # define Declare 365
  122. # define Suspend 366
  123. # define Fail 367
  124. # define Inline 368
  125. # define Abstract 369
  126. # define Store 370
  127. # define Type 371
  128. # define New 372
  129. # define Lst_elem 373
  130. # define Set_elem 374
  131. # define Key 375
  132. # define Tbl_elem 376
  133. # define All_fields 377
  134. # define Str_var 378
  135. # define Trpd_tbl 379
  136. # define Then 380
  137. # define Type_case 381
  138. # define Of 382
  139. # define Len_case 383
  140. # define Constant 384
  141. # define Errorfail 385
  142. # define IfStmt 386
  143. #define yyclearin yychar = -1
  144. #define yyerrok yyerrflag = 0
  145. extern int yychar;
  146. extern int yyerrflag;
  147. #ifndef YYMAXDEPTH
  148. #define YYMAXDEPTH 150
  149. #endif
  150. YYSTYPE yylval, yyval;
  151. # define YYERRCODE 256
  152.  
  153. # line 1119 "rttgram.y"
  154.  
  155. int yyexca[] ={
  156. -1, 0,
  157.     0, 279,
  158.     258, 299,
  159.     361, 299,
  160.     362, 299,
  161.     363, 299,
  162.     -2, 193,
  163. -1, 1,
  164.     0, -1,
  165.     -2, 0,
  166. -1, 2,
  167.     0, 280,
  168.     258, 299,
  169.     361, 299,
  170.     362, 299,
  171.     363, 299,
  172.     -2, 193,
  173. -1, 51,
  174.     44, 113,
  175.     59, 113,
  176.     -2, 290,
  177. -1, 58,
  178.     44, 115,
  179.     59, 115,
  180.     -2, 289,
  181. -1, 122,
  182.     123, 166,
  183.     -2, 168,
  184. -1, 160,
  185.     125, 257,
  186.     59, 86,
  187.     -2, 230,
  188. -1, 259,
  189.     125, 257,
  190.     59, 86,
  191.     -2, 230,
  192. -1, 260,
  193.     125, 258,
  194.     59, 86,
  195.     -2, 230,
  196. -1, 276,
  197.     58, 293,
  198.     -2, 1,
  199. -1, 277,
  200.     58, 294,
  201.     -2, 98,
  202. -1, 283,
  203.     59, 86,
  204.     -2, 230,
  205. -1, 329,
  206.     41, 212,
  207.     -2, 193,
  208. -1, 391,
  209.     41, 204,
  210.     44, 204,
  211.     -2, 193,
  212. -1, 416,
  213.     59, 86,
  214.     -2, 230,
  215. -1, 418,
  216.     59, 86,
  217.     -2, 230,
  218. -1, 472,
  219.     41, 214,
  220.     44, 214,
  221.     -2, 194,
  222. -1, 535,
  223.     59, 86,
  224.     -2, 230,
  225. -1, 564,
  226.     40, 193,
  227.     91, 193,
  228.     -2, 219,
  229. -1, 635,
  230.     293, 219,
  231.     294, 219,
  232.     295, 219,
  233.     296, 219,
  234.     297, 219,
  235.     299, 219,
  236.     300, 219,
  237.     301, 219,
  238.     302, 219,
  239.     303, 219,
  240.     304, 219,
  241.     305, 219,
  242.     306, 219,
  243.     307, 219,
  244.     308, 219,
  245.     309, 219,
  246.     310, 219,
  247.     311, 219,
  248.     312, 219,
  249.     313, 219,
  250.     41, 219,
  251.     354, 219,
  252.     355, 219,
  253.     356, 219,
  254.     -2, 193,
  255. -1, 642,
  256.     59, 86,
  257.     -2, 230,
  258. -1, 643,
  259.     59, 86,
  260.     -2, 230,
  261. -1, 645,
  262.     59, 86,
  263.     -2, 230,
  264. -1, 694,
  265.     59, 86,
  266.     -2, 230,
  267. -1, 741,
  268.     59, 86,
  269.     -2, 230,
  270. -1, 746,
  271.     58, 458,
  272.     -2, 316,
  273. -1, 789,
  274.     59, 86,
  275.     -2, 230,
  276. -1, 809,
  277.     59, 86,
  278.     -2, 230,
  279.     };
  280. # define YYNPROD 508
  281. # define YYLAST 3565
  282. int yyact[]={
  283.  
  284.    188,   682,   266,   293,    16,   734,   662,   736,   262,   278,
  285.    371,   583,   126,     8,   676,     8,    63,   675,   680,   663,
  286.    385,   693,   218,   511,   233,   571,   168,   390,   378,   127,
  287.      9,   456,     9,   367,   208,    66,   165,   261,   255,    50,
  288.    248,    11,   292,   234,   119,   119,   110,   506,   120,   120,
  289.    762,    58,   440,    13,   119,   504,   243,   498,   120,    15,
  290.    159,   162,   656,    56,   215,    25,   495,   700,    53,    12,
  291.     51,   112,   660,   570,   140,   142,   141,   259,   384,    55,
  292.    329,   368,   369,   370,   203,   701,   560,   222,   328,   542,
  293.    187,   202,   741,   670,   256,   201,   681,   115,    23,    24,
  294.     31,   366,   413,   687,   713,   176,   145,   758,   759,   760,
  295.    761,   763,   764,   765,   414,   415,   572,   572,   683,   322,
  296.    267,   336,   337,   154,   798,   712,   222,   770,   207,   338,
  297.    309,   339,   499,   222,   166,   806,   205,   206,   117,   122,
  298.    166,    18,    19,    20,    21,    22,   681,   730,   132,   342,
  299.    343,   380,   579,   154,   154,    23,    24,   154,   119,   664,
  300.    509,   276,   120,    61,    56,   277,   152,   149,   404,   163,
  301.    235,   166,   204,   213,   432,   153,   254,   163,    52,   216,
  302.    146,    56,   817,    59,   326,   357,    53,   442,   359,    53,
  303.    358,   788,   360,    53,   249,   211,   775,    55,   114,   258,
  304.    708,   404,   630,   529,   295,   333,   515,   510,   150,   319,
  305.    496,    53,   407,   244,   263,     5,   644,     5,   580,   578,
  306.    160,   769,   497,   353,   222,   257,   372,   373,   232,   231,
  307.    230,   157,   334,   148,   349,   818,   235,   751,   388,   355,
  308.    707,   678,   491,   327,   154,   383,   783,   440,   799,   528,
  309.    392,   655,   564,   717,   210,   144,   669,   505,   119,   466,
  310.    276,   276,   120,   125,   277,   411,   405,   393,   441,   410,
  311.    136,   130,   235,   440,   377,   790,   786,   235,   714,   683,
  312.    748,   224,   403,   688,   276,   647,   429,   553,   411,   398,
  313.    411,   229,   426,   782,   402,   235,   554,   409,   433,   433,
  314.    443,   713,   654,   565,   713,   209,   143,   110,   164,   549,
  315.    545,   544,   417,   119,   119,   449,   239,   120,   120,   212,
  316.    224,   251,   712,   227,   424,   712,   333,   224,   247,   713,
  317.    229,   419,   228,   223,   129,   333,   333,   229,   439,   161,
  318.    400,   396,   438,   340,   341,   225,   308,   226,   217,   638,
  319.    712,   388,   445,   446,   431,   399,   395,   467,   241,   455,
  320.    327,   135,   227,   392,   327,    23,    24,   430,   421,   227,
  321.    493,   228,   223,   129,   379,   355,   134,   789,   228,   223,
  322.    393,   488,   489,   490,   225,   355,   226,    31,   128,   473,
  323.    540,   225,   471,   226,   352,   472,   368,   369,   370,   778,
  324.    500,   777,   362,   793,    49,   119,   428,   450,   451,   120,
  325.    452,   474,   475,   453,   444,   531,   533,   276,   224,   276,
  326.    477,   411,   468,   411,   537,   534,   476,   536,   229,   492,
  327.    776,   494,   235,   519,   406,   507,   508,   543,   546,   547,
  328.    548,   524,   249,   526,   550,   732,   166,    56,   241,   527,
  329.    713,   521,   530,   522,   520,   729,    53,   472,   244,   408,
  330.    227,   354,   535,    55,   437,   538,   539,   503,   541,   228,
  331.    223,   712,    53,   486,   487,   480,   481,   482,   483,   552,
  332.    484,   485,   225,   454,   226,    91,    92,    93,    94,    95,
  333.     97,    96,    98,    99,   100,   101,   102,   103,   104,   105,
  334.    106,   107,   108,   109,   502,   562,   381,   382,    31,   478,
  335.    479,   584,    31,   501,   418,   585,   584,   416,   632,   401,
  336.    585,   573,    63,   397,   250,   325,   324,   631,   245,   323,
  337.    774,   392,   409,   574,   576,   577,   276,   455,   702,   815,
  338.    411,   629,   816,   344,   639,   345,   634,   169,   393,   699,
  339.    235,   348,   235,   460,   457,   458,   346,   459,   311,   518,
  340.    649,   347,   650,   651,   312,   653,   517,   636,   811,   637,
  341.    440,   812,   513,   461,   462,   463,   464,   465,   772,   747,
  342.    648,   773,   440,   372,   645,   643,   642,   440,   440,   440,
  343.    658,   640,   235,   684,   641,   661,   581,   555,   469,   582,
  344.    556,   440,   513,   512,    31,   668,   455,   827,   826,   310,
  345.     30,   822,   814,   809,   455,   795,   794,   792,   781,   297,
  346.    771,   753,   740,   733,   473,   705,   698,   652,   111,   566,
  347.    472,   557,   516,   470,   351,   238,   807,   767,   715,   685,
  348.    673,   672,   671,   276,   276,   689,   276,   411,   411,   646,
  349.    411,   690,   691,   686,   695,   561,   559,   697,   558,   694,
  350.    427,   575,   425,   423,   710,   422,   420,   709,   376,   335,
  351.    392,   375,   372,   372,   372,   718,   719,   145,   706,   703,
  352.    455,   235,   721,   722,   723,     3,   737,   393,    47,   696,
  353.    374,   236,   725,   720,   659,   521,   455,   745,   731,   727,
  354.    363,   472,   455,   749,   455,   455,   750,   694,   735,   739,
  355.    455,   754,   455,   514,   743,   139,   372,   392,   214,   138,
  356.    316,   318,   236,   320,   768,   752,   766,   137,   455,   156,
  357.    746,   755,   756,    60,   393,   780,    10,    48,   677,   784,
  358.    584,     6,   276,     4,   585,     2,   411,   455,   455,   412,
  359.    787,   785,   270,   455,   704,   779,   657,   236,   791,   156,
  360.    156,   237,   350,   156,   158,   121,   252,   525,   523,     1,
  361.    796,   569,   568,   679,   797,   365,   692,   800,   801,   742,
  362.    724,   674,   364,   804,   737,   219,   635,   313,   314,   315,
  363.    221,   805,   808,   236,   220,   361,     7,   810,   236,   802,
  364.    274,   803,   273,   455,   677,   272,   813,   819,   737,   271,
  365.    276,   332,   260,   820,   411,   824,   236,   123,   821,   823,
  366.    825,   124,   265,   294,   563,   386,   716,   389,   387,    62,
  367.    131,    42,   246,   242,   677,   455,   728,   565,   298,   299,
  368.    300,   301,   302,   303,   304,   305,   306,   307,   455,   155,
  369.    156,   151,   677,    41,   728,   330,   236,    54,    17,    33,
  370.     34,    35,    36,    39,    40,    37,    38,    23,    24,    32,
  371.    236,    45,    46,    44,   236,   391,   170,   448,   171,   177,
  372.    757,   711,   236,   236,   236,   236,   236,   236,   236,   236,
  373.    236,   236,   236,   236,   236,   236,   236,    91,    92,    93,
  374.     94,    95,    97,    96,    98,    99,   100,   101,   102,   103,
  375.    104,   105,   106,   107,   108,   109,   356,   186,    43,   296,
  376.    174,     0,   181,     0,   200,     0,   182,   183,     0,   184,
  377.      0,     0,   332,     0,     0,   667,   665,   666,     0,     0,
  378.      0,   332,   332,     0,     0,    65,     0,     0,     0,     0,
  379.      0,     0,     0,   236,    18,    19,    20,    21,    22,     0,
  380.     33,    34,    35,    36,    39,    40,    37,    38,    23,    24,
  381.     32,    26,    45,    46,    44,   633,     0,     0,     0,     0,
  382.      0,    18,    19,    20,    21,    22,     0,    33,    34,    35,
  383.     36,    39,    40,    37,    38,    23,    24,    32,    26,    45,
  384.     46,    44,     0,    65,     0,     0,     0,     0,     0,     0,
  385.    185,     0,     0,     0,     0,    27,    28,    29,   236,    72,
  386.     91,    92,    93,    94,    95,    97,    96,    98,    99,   100,
  387.    101,   102,   103,   104,   105,   106,   107,   108,   109,    76,
  388.     82,    81,    27,    28,    29,    87,    86,    69,    71,     0,
  389.      0,     0,    90,    70,     0,     0,    73,    67,    80,    89,
  390.     77,    75,    79,    74,    84,    68,    83,    88,    85,     0,
  391.     78,   236,     0,   236,     0,     0,     0,    72,    91,    92,
  392.     93,    94,    95,    97,    96,    98,    99,   100,   101,   102,
  393.    103,   104,   105,   106,   107,   108,   109,    76,    82,    81,
  394.      0,   236,     0,    87,    86,    69,    71,     0,     0,     0,
  395.     90,    70,     0,   236,    73,    67,    80,    89,    77,    75,
  396.     79,    74,    84,    68,    83,    88,    85,     0,    78,     0,
  397.      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  398.      0,    65,   189,   190,   191,   192,   193,   194,   195,   196,
  399.    197,   198,   199,   186,   172,   173,     0,     0,   181,     0,
  400.    200,     0,   182,   183,     0,   184,     0,     0,     0,     0,
  401.      0,     0,     0,     0,   175,     0,     0,    18,    19,    20,
  402.     21,    22,   264,    33,    34,    35,    36,    39,    40,    37,
  403.     38,    23,    24,    32,    26,    45,    46,    44,     0,   268,
  404.    269,   279,   236,   280,   282,   283,   284,   285,   286,   287,
  405.    288,   275,   178,   179,   180,    72,    91,    92,    93,    94,
  406.     95,    97,    96,    98,    99,   100,   101,   102,   103,   104,
  407.    105,   106,   107,   108,   109,    76,    82,    81,    27,    28,
  408.     29,    87,    86,    69,    71,    65,   185,     0,    90,    70,
  409.    289,   290,    73,    67,    80,    89,    77,    75,    79,    74,
  410.     84,    68,    83,    88,    85,   281,    78,     0,     0,   291,
  411.      0,     0,     0,     0,     0,     0,     0,     0,   617,     0,
  412.      0,   623,   600,   618,   586,   612,   622,   589,   615,   607,
  413.    610,   616,   625,   602,   596,   591,   627,   626,    26,   619,
  414.    624,   598,     0,   588,   594,   606,   597,   621,   628,   595,
  415.    603,   605,   592,   587,   613,   614,   608,   590,   593,    72,
  416.     91,    92,    93,    94,    95,    97,    96,    98,    99,   100,
  417.    101,   102,   103,   104,   105,   106,   107,   108,   109,    76,
  418.     82,    81,    27,    28,    29,    87,    86,    69,    71,   604,
  419.    609,   611,    90,    70,   620,   601,    73,    67,    80,    89,
  420.     77,    75,    79,    74,    84,    68,    83,    88,    85,     0,
  421.     78,     0,     0,   599,     0,     0,     0,    65,   189,   190,
  422.    191,   192,   193,   194,   195,   196,   197,   198,   199,   186,
  423.    172,   173,     0,     0,   181,   744,   200,     0,   182,   183,
  424.      0,   184,     0,     0,     0,     0,     0,     0,     0,     0,
  425.    175,    91,    92,    93,    94,    95,    97,    96,    98,    99,
  426.    100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
  427.     26,     0,     0,     0,     0,   268,   269,   279,     0,   280,
  428.    282,   283,   284,   285,   286,   287,   288,   275,   178,   179,
  429.    180,    72,    91,    92,    93,    94,    95,    97,    96,    98,
  430.     99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
  431.    109,    76,    82,    81,    27,    28,    29,    87,    86,    69,
  432.     71,    65,   185,     0,    90,    70,   289,   290,    73,    67,
  433.     80,    89,    77,    75,    79,    74,    84,    68,    83,    88,
  434.     85,   281,    78,     0,     0,   291,     0,     0,     0,     0,
  435.      0,     0,     0,     0,     0,   186,     0,     0,     0,   726,
  436.    181,     0,   200,     0,   182,   183,     0,   184,     0,     0,
  437.      0,     0,     0,     0,    26,    91,    92,    93,    94,    95,
  438.     97,    96,    98,    99,   100,   101,   102,   103,   104,   105,
  439.    106,   107,   108,   109,     0,    72,    91,    92,    93,    94,
  440.     95,    97,    96,    98,    99,   100,   101,   102,   103,   104,
  441.    105,   106,   107,   108,   109,    76,    82,    81,    27,    28,
  442.     29,    87,    86,    69,    71,     0,     0,     0,    90,    70,
  443.      0,     0,    73,    67,    80,    89,    77,    75,    79,    74,
  444.     84,    68,    83,    88,    85,     0,    78,     0,   185,     0,
  445.      0,     0,     0,    65,   189,   190,   191,   192,   193,   194,
  446.    195,   196,   197,   198,   199,     0,   172,   173,     0,    18,
  447.     19,    20,    21,    22,     0,    33,    34,    35,    36,    39,
  448.     40,    37,    38,    23,    24,    32,   175,    45,    46,    44,
  449.      0,     0,     0,     0,     0,    33,    34,    35,    36,    39,
  450.     40,    37,    38,    23,    24,    32,    26,    45,    46,    44,
  451.    186,     0,     0,     0,     0,   181,     0,   200,     0,   182,
  452.    183,     0,   184,     0,   178,   179,   180,    72,    91,    92,
  453.     93,    94,    95,    97,    96,    98,    99,   100,   101,   102,
  454.    103,   104,   105,   106,   107,   108,   109,    76,    82,    81,
  455.     27,    28,    29,    87,    86,    69,    71,     0,     0,     0,
  456.     90,    70,     0,     0,    73,    67,    80,    89,    77,    75,
  457.     79,    74,    84,    68,    83,    88,    85,     0,    78,    65,
  458.    189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
  459.    199,     0,   172,   173,     0,     0,     0,     0,     0,     0,
  460.      0,     0,     0,   185,     0,     0,     0,     0,     0,     0,
  461.      0,     0,   175,     0,     0,     0,     0,     0,     0,     0,
  462.      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  463.      0,     0,     0,     0,     0,     0,     0,     0,     0,   279,
  464.      0,   280,   282,   283,   284,   285,   286,   287,   288,   275,
  465.    178,   179,   180,    72,    91,    92,    93,    94,    95,    97,
  466.     96,    98,    99,   100,   101,   102,   103,   104,   105,   106,
  467.    107,   108,   109,    76,    82,    81,     0,     0,     0,    87,
  468.     86,    69,    71,     0,     0,     0,    90,    70,   289,   290,
  469.     73,    67,    80,    89,    77,    75,    79,    74,    84,    68,
  470.     83,    88,    85,   281,    78,   186,     0,   291,     0,     0,
  471.    181,     0,   200,     0,   182,   183,     0,   184,    33,    34,
  472.     35,    36,    39,    40,    37,    38,    23,    24,    32,    26,
  473.     45,    46,    44,     0,    65,   189,   190,   191,   192,   193,
  474.    194,   195,   196,   197,   198,   199,     0,   172,   173,     0,
  475.      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  476.      0,     0,     0,     0,     0,     0,     0,   175,     0,     0,
  477.      0,     0,     0,    27,    28,    29,     0,     0,     0,     0,
  478.      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  479.      0,     0,     0,     0,     0,   167,     0,   551,   185,    65,
  480.      0,     0,     0,     0,     0,   178,   179,   180,    72,    91,
  481.     92,    93,    94,    95,    97,    96,    98,    99,   100,   101,
  482.    102,   103,   104,   105,   106,   107,   108,   109,    76,    82,
  483.     81,   434,   435,   436,    87,    86,    69,    71,     0,     0,
  484.      0,    90,    70,     0,     0,    73,    67,    80,    89,    77,
  485.     75,    79,    74,    84,    68,    83,    88,    85,   186,    78,
  486.      0,     0,     0,   181,     0,   200,   447,   182,   183,     0,
  487.    184,     0,     0,    72,    91,    92,    93,    94,    95,    97,
  488.     96,    98,    99,   100,   101,   102,   103,   104,   105,   106,
  489.    107,   108,   109,    76,    82,    81,     0,     0,     0,    87,
  490.     86,    69,    71,     0,     0,     0,   738,    70,     0,     0,
  491.     73,    67,    80,    89,    77,    75,    79,    74,    84,    68,
  492.     83,    88,    85,     0,    78,     0,     0,     0,     0,    65,
  493.    189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
  494.    199,     0,   172,   173,     0,     0,     0,     0,     0,     0,
  495.      0,   185,     0,     0,     0,     0,     0,     0,     0,     0,
  496.      0,     0,   175,     0,     0,     0,     0,     0,     0,     0,
  497.      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  498.      0,     0,     0,     0,   186,     0,     0,     0,     0,   181,
  499.      0,   200,     0,   182,   183,     0,   184,     0,     0,     0,
  500.    178,   179,   180,    72,    91,    92,    93,    94,    95,    97,
  501.     96,    98,    99,   100,   101,   102,   103,   104,   105,   106,
  502.    107,   108,   109,    76,    82,    81,     0,     0,     0,    87,
  503.     86,    69,    71,     0,     0,     0,    90,    70,     0,     0,
  504.     73,    67,    80,    89,    77,    75,    79,    74,    84,    68,
  505.     83,    88,    85,     0,    78,     0,     0,     0,     0,     0,
  506.      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  507.      0,     0,     0,     0,   167,     0,     0,   185,     0,     0,
  508.      0,     0,    65,   189,   190,   191,   192,   193,   194,   195,
  509.    196,   197,   198,   199,     0,   172,   173,     0,     0,     0,
  510.      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  511.      0,     0,     0,   186,     0,   175,     0,     0,   181,     0,
  512.    200,     0,   182,   183,     0,   184,     0,     0,     0,    31,
  513.      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  514.      0,     0,     0,     0,     0,   250,     0,     0,     0,     0,
  515.      0,     0,     0,   178,   179,   180,    72,    91,    92,    93,
  516.     94,    95,    97,    96,    98,    99,   100,   101,   102,   103,
  517.    104,   105,   106,   107,   108,   109,    76,    82,    81,     0,
  518.      0,     0,    87,    86,    69,    71,     0,     0,     0,    90,
  519.     70,     0,     0,    73,    67,    80,    89,    77,    75,    79,
  520.     74,    84,    68,    83,    88,    85,   185,    78,    65,   189,
  521.    190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
  522.      0,   172,   173,     0,     0,     0,     0,     0,     0,     0,
  523.      0,     0,     0,     0,     0,     0,     0,     0,     0,   186,
  524.      0,   175,     0,     0,   181,     0,   321,     0,   182,   183,
  525.      0,   184,     0,     0,     0,     0,     0,     0,     0,     0,
  526.      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  527.      0,     0,     0,     0,     0,     0,     0,     0,     0,   178,
  528.    179,   180,    72,    91,    92,    93,    94,    95,    97,    96,
  529.     98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
  530.    108,   109,    76,    82,    81,     0,     0,     0,    87,    86,
  531.     69,    71,     0,     0,     0,    90,    70,     0,     0,    73,
  532.     67,    80,    89,    77,    75,    79,    74,    84,    68,    83,
  533.     88,    85,   185,    78,     0,     0,     0,    65,   189,   190,
  534.    191,   192,   193,   194,   195,   196,   197,   198,   199,     0,
  535.    172,   173,     0,     0,     0,     0,     0,     0,     0,     0,
  536.      0,     0,     0,     0,     0,     0,     0,     0,   186,     0,
  537.    175,     0,     0,   181,     0,   317,     0,   182,   183,     0,
  538.    184,     0,     0,     0,     0,     0,    33,    34,    35,    36,
  539.     39,    40,    37,    38,    23,    24,    32,    26,    45,    46,
  540.     44,     0,     0,     0,     0,     0,     0,     0,   178,   179,
  541.    180,    72,    91,    92,    93,    94,    95,    97,    96,    98,
  542.     99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
  543.    109,    76,    82,    81,     0,     0,     0,    87,    86,    69,
  544.     71,    27,    28,    29,    90,    70,     0,     0,    73,    67,
  545.     80,    89,    77,    75,    79,    74,    84,    68,    83,    88,
  546.     85,   185,    78,    65,   189,   190,   191,   192,   193,   194,
  547.    195,   196,   197,   198,   199,     0,   172,   173,     0,   133,
  548.      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  549.      0,     0,     0,     0,     0,     0,   175,     0,     0,     0,
  550.      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  551.    118,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  552.      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  553.      0,     0,     0,     0,   178,   179,   180,    72,    91,    92,
  554.     93,    94,    95,    97,    96,    98,    99,   100,   101,   102,
  555.    103,   104,   105,   106,   107,   108,   109,    76,    82,    81,
  556.      0,     0,     0,    87,    86,    69,    71,     0,     0,     0,
  557.     90,    70,     0,     0,    73,    67,    80,    89,    77,    75,
  558.     79,    74,    84,    68,    83,    88,    85,     0,    78,    64,
  559.      0,     0,    65,   189,   190,   191,   192,   193,   194,   195,
  560.    196,   197,   198,   199,     0,   172,   173,     0,     0,     0,
  561.      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  562.      0,     0,     0,     0,     0,   175,     0,     0,     0,     0,
  563.      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  564.      0,     0,     0,     0,    65,     0,     0,     0,     0,     0,
  565.      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  566.      0,     0,     0,   178,   179,   180,    72,    91,    92,    93,
  567.     94,    95,    97,    96,    98,    99,   100,   101,   102,   103,
  568.    104,   105,   106,   107,   108,   109,    76,    82,    81,     0,
  569.      0,     0,    87,    86,    69,    71,    65,    26,     0,    90,
  570.     70,     0,     0,    73,    67,    80,    89,    77,    75,    79,
  571.     74,    84,    68,    83,    88,    85,     0,    78,    72,    91,
  572.     92,    93,    94,    95,    97,    96,    98,    99,   100,   101,
  573.    102,   103,   104,   105,   106,   107,   108,   109,    76,    82,
  574.     81,    27,    28,    29,    87,    86,    69,    71,    65,    26,
  575.      0,    90,    70,     0,     0,    73,    67,    80,    89,    77,
  576.     75,    79,    74,    84,    68,    83,    88,    85,     0,    78,
  577.     72,    91,    92,    93,    94,    95,    97,    96,    98,    99,
  578.    100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
  579.     76,    82,    81,    27,    28,    29,    87,    86,    69,    71,
  580.      0,   532,     0,    90,    70,     0,    65,    73,    67,    80,
  581.     89,    77,    75,    79,    74,    84,    68,    83,    88,    85,
  582.      0,    78,    72,    91,    92,    93,    94,    95,    97,    96,
  583.     98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
  584.    108,   109,    76,    82,    81,   222,     0,     0,    87,    86,
  585.     69,    71,     0,     0,     0,    90,    70,     0,    65,    73,
  586.     67,    80,    89,    77,    75,    79,    74,    84,    68,    83,
  587.     88,    85,     0,    78,     0,     0,     0,     0,     0,     0,
  588.     72,    91,    92,    93,    94,    95,    97,    96,    98,    99,
  589.    100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
  590.     76,    82,    81,     0,     0,     0,    87,    86,    69,    71,
  591.      0,     0,     0,    90,    70,     0,     0,    73,    67,    80,
  592.     89,    77,    75,    79,    74,    84,    68,    83,    88,    85,
  593.      0,    78,    72,    91,    92,    93,    94,    95,    97,    96,
  594.     98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
  595.    108,   109,    76,    82,    81,     0,     0,     0,    87,    86,
  596.     69,    71,     0,     0,     0,    90,    70,     0,     0,    73,
  597.     67,    80,    89,    77,    75,    79,    74,    84,    68,    83,
  598.     88,    85,    14,    78,   567,    31,     0,     0,     0,     0,
  599.      0,     0,    57,     0,     0,     0,     0,     0,     0,     0,
  600.    113,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  601.      0,     0,     0,     0,   116,     0,    18,    19,    20,    21,
  602.     22,   264,    33,    34,    35,    36,    39,    40,    37,    38,
  603.     23,    24,    32,    26,    45,    46,    44,     0,     0,   224,
  604.      0,     0,     0,     0,     0,     0,     0,     0,     0,   229,
  605.      0,     0,     0,     0,    91,    92,    93,    94,    95,    97,
  606.     96,    98,    99,   100,   101,   102,   103,   104,   105,   106,
  607.    107,   108,   109,     0,     0,     0,     0,    27,    28,    29,
  608.      0,   227,     0,     0,     0,     0,     0,     0,     0,     0,
  609.    228,   223,     0,    57,     0,     0,     0,   147,     0,     0,
  610.      0,   116,     0,   225,   394,   226,     0,     0,     0,     0,
  611.     57,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  612.      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  613.      0,   116,   116,     0,     0,   147,     0,   116,   253,     0,
  614.      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  615.      0,     0,    18,    19,    20,    21,    22,   264,    33,    34,
  616.     35,    36,    39,    40,    37,    38,    23,    24,    32,    26,
  617.     45,    46,    44,   240,     0,     0,     0,     0,     0,     0,
  618.      0,     0,     0,   331,     0,     0,     0,     0,     0,     0,
  619.      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  620.      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  621.      0,     0,     0,    27,    28,    29,     0,     0,     0,     0,
  622.      0,     0,   116,     0,     0,     0,     0,     0,     0,     0,
  623.      0,     0,     0,     0,   147,     0,    18,    19,    20,    21,
  624.     22,     0,    33,    34,    35,    36,    39,    40,    37,    38,
  625.     23,    24,    32,    26,    45,    46,    44,    18,    19,    20,
  626.     21,    22,     0,    33,    34,    35,    36,    39,    40,    37,
  627.     38,    23,    24,    32,    26,    45,    46,    44,    33,    34,
  628.     35,    36,    39,    40,    37,    38,    23,    24,    32,    26,
  629.     45,    46,    44,     0,     0,     0,     0,    27,    28,    29,
  630.      0,     0,     0,     0,   331,     0,     0,     0,     0,     0,
  631.      0,     0,     0,   331,   331,     0,     0,     0,    27,    28,
  632.     29,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  633.      0,     0,     0,    27,    28,    29,     0,     0,     0,     0,
  634.      0,     0,     0,     0,     0,     0,     0,    33,    34,    35,
  635.     36,    39,    40,    37,    38,    23,    24,    32,    26,    45,
  636.     46,    44,     0,     0,     0,     0,     0,     0,     0,     0,
  637.      0,     0,     0,     0,     0,     0,    57,     0,     0,     0,
  638.      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  639.      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  640.      0,     0,    27,    28,    29 };
  641. int yypact[]={
  642.  
  643.   3103, -1000,  3103, -1000, -1000, -1000, -1000, -1000,   345,  3103,
  644.    -95, -1000, -1000, -1000, -1000,  2709,  -152,  1336, -1000, -1000,
  645.  -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
  646.  -1000,    58, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
  647.  -1000, -1000, -1000,  2547,  1224, -1000, -1000, -1000,  3124, -1000,
  648.    329,   210, -1000,  2599,   317, -1000, -1000, -1000,   209, -1000,
  649.   -287, -1000,   215, -1000,   562, -1000, -1000, -1000, -1000, -1000,
  650.  -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
  651.  -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
  652.  -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
  653.  -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
  654.   -152, -1000, -1000, -1000,    58, -1000, -1000,   110,  1579, -1000,
  655.  -1000,   108, -1000,    97,  3124, -1000,   345,  3103, -1000,   562,
  656.   2111,   214, -1000,   562, -1000,   562,  2111, -1000,  -301,   -36,
  657.    107,   106,   105,  2240, -1000,   594, -1000, -1000,  1579,  3208,
  658.  -1000,   470,  2247, -1000,  -209,   560, -1000,  1224,   102, -1000,
  659.    884, -1000,   210,   209, -1000, -1000, -1000,  2111, -1000,   558,
  660.     67,   518,  2495,  2495,  2240,  2366,  -159, -1000,   471,   468,
  661.    467, -1000, -1000, -1000, -1000, -1000, -1000,    60, -1000, -1000,
  662.  -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
  663.   1356,   138,   631,  -155,    69,  -123,   500,   514, -1000,  2240,
  664.  -1000,   593, -1000, -1000,     3,   100,   101,   -73, -1000, -1000,
  665.  -1000, -1000,     3, -1000,    68,  2761,  2761, -1000, -1000,   628,
  666.    109,   109,   109,   152, -1000, -1000, -1000,   688, -1000,  3139,
  667.  -1000, -1000,   297, -1000,   465,  2240,   296, -1000, -1000,   461,
  668.   2240,  -209, -1000, -1000,   157, -1000,   205,  1224,    87,   884,
  669.   1120, -1000, -1000, -1000,  -197, -1000, -1000,   459,  2240,   456,
  670.     97, -1000, -1000, -1000, -1000,   626, -1000,  -152,   309,   625,
  671.    623,  2240,   622,  1120,   620,  1224,   308,   295,  1637,  1637,
  672.    283,   279,   526, -1000,   143, -1000,  2240, -1000, -1000, -1000,
  673.  -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,  2240,  2240,
  674.   2240,  1985,  1224,  1224, -1000, -1000, -1000,  2240, -1000, -1000,
  675.  -1000,  1356,  2240,   153,   219,   219,  2240,   557,   592,   562,
  676.   1579,  1579, -1000, -1000,  2240,  2240,  2240,  2240,  2240,  2240,
  677.   2240,  2240,  2240,  2240,  2240,  2240,  2240,  2240,  2240,   149,
  678.    688, -1000,    10,  2883, -1000, -1000,  -294, -1000, -1000, -1000,
  679.  -1000,    85,     3,    99,  -323,  -146,  -247, -1000,   455,   446,
  680.    409,  -327,   166,  -335,    97,    97,  -105,    82,   559, -1000,
  681.  -1000, -1000,    81, -1000,   591, -1000,   522, -1000, -1000,   515,
  682.  -1000,   562, -1000,  3124, -1000, -1000,   470, -1000, -1000, -1000,
  683.    466, -1000, -1000, -1000,  1224,  2240,   124, -1000,    78, -1000,
  684.  -1000, -1000,   562, -1000,  2651,  2761,  1120,   404,  1120, -1000,
  685.   2240, -1000,  2240,  2240,     8,  2240,  -231,  2240,   252, -1000,
  686.  -1000, -1000,   251, -1000,  2240,  2240,  2240,   250, -1000, -1000,
  687.   2240, -1000,  1832, -1000,  -159,   229,   203, -1000,   556, -1000,
  688.  -1000, -1000,   590,    60,   618, -1000,   616, -1000, -1000, -1000,
  689.  -1000, -1000, -1000, -1000, -1000, -1000,  -245,   615,   138, -1000,
  690.   2240, -1000, -1000,   212, -1000, -1000,   631,  -155,    69,    69,
  691.   -123,  -123,  -123,  -123,   500,   500,   514,   514, -1000, -1000,
  692.  -1000, -1000,   588, -1000,  3019, -1000, -1000,  -253,     3,  -247,
  693.  -1000,   153,   219,   219,    96,  -113,    95, -1000, -1000,   555,
  694.    988, -1000,   109, -1000,    77,   988, -1000,  2761,   661, -1000,
  695.  -1000,   746, -1000,  2240, -1000,  2240, -1000, -1000, -1000, -1000,
  696.    290, -1000, -1000, -1000, -1000,  1120, -1000,   550,   545,   544,
  697.     93,   543,   609,   226, -1000, -1000, -1000, -1000, -1000, -1000,
  698.  -1000, -1000, -1000,  2240, -1000, -1000,  2240, -1000,  2240,  2240,
  699.    586,  2240, -1000,   211,   562,  2240, -1000, -1000, -1000,  -254,
  700.    565, -1000,   165,  -225, -1000,   602,   601,   600,   153,   148,
  701.   -119,   220,  2761,   599, -1000, -1000, -1000, -1000, -1000, -1000,
  702.  -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
  703.  -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
  704.  -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
  705.  -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,   529,
  706.   -189, -1000, -1000, -1000, -1000,   562, -1000, -1000, -1000, -1000,
  707.    224,  2240,  1120,  1120,   153,  1120,  2240,  2240, -1000, -1000,
  708.    585,   505,  -269,   494,  2240, -1000,   584,  3124,   147,    75,
  709.    565, -1000,    59,   232, -1000,   598,   153,   162,   565,   565,
  710.      3,  2761,  2761,  2761,  1203, -1000,  2882,   397, -1000,  -169,
  711.  -1000,   387, -1000, -1000,   582,  1702, -1000, -1000, -1000,   581,
  712.   -226, -1000,  1079, -1000,  1482, -1000,   538,   221, -1000,  2240,
  713.  -1000, -1000,  2240,   144,  3124, -1000,   580, -1000, -1000,    59,
  714.  -1000,   565,   565, -1000,  -266,  2761,   597,   565,   180,    34,
  715.  -1000,   579,   537,   486,    71, -1000,   372, -1000,   343, -1000,
  716.    341, -1000,     3,   220,   577,   202, -1000, -1000,  2761,   988,
  717.    217,  1120,    66, -1000,   319, -1000, -1000,   216,  2240,   576,
  718.    359, -1000,   575, -1000, -1000,   232,   232, -1000, -1000, -1000,
  719.  -1000, -1000, -1000, -1000, -1000, -1000,   574,   565,    31, -1000,
  720.    187, -1000, -1000,  2240,  2240, -1000,     3, -1000,     3, -1000,
  721.  -1000, -1000,  2761,  1702,  -134,   596, -1000, -1000, -1000,  1482,
  722.  -1000,   572, -1000,  2240, -1000, -1000,   527,  -166, -1000,   565,
  723.    571,   498, -1000,    57,   142, -1000,  2761,  1702, -1000,  1120,
  724.    570, -1000,   565,    59, -1000, -1000,  2240, -1000, -1000, -1000,
  725.    567, -1000, -1000,  -166, -1000,   566, -1000, -1000 };
  726. int yypgo[]={
  727.  
  728.      0,   920,   919,   918,     4,     0,    11,    35,   916,   881,
  729.    880,    94,    53,  3142,   879,   878,   877,   547,    34,   128,
  730.    137,   136,   172,    84,    91,    95,    90,   105,   876,    26,
  731.      3,    42,     9,    43,    24,   214,    12,   875,    69,   858,
  732.     29,    39,   857,   178,   183,   855,   610,   853,   167,   208,
  733.    851,   175,   849,   833,    56,   832,    40,   831,   176,    38,
  734.     61,    41,   830,   829,    65,    59,   166,   828,    20,   827,
  735.     27,   825,    80,    88,    62,   824,    36,   823,     8,   822,
  736.     60,   821,   817,   812,   809,   805,   802,   800,    78,   796,
  737.    199,    77,    37,    31,   159,   795,   179,    22,   174,   794,
  738.    790,    10,   785,   120,   782,   781,   780,    17,    14,   779,
  739.     21,   776,     2,   775,    33,   773,    18,   772,   771,    25,
  740.      6,    19,   770,    23,    28,   769,   768,   767,   765,   764,
  741.    762,   761,   756,   754,   752,   749,   745,   685,   743,   741,
  742.    737,   736,   733,   727,   719,   718,   715,   274,     5,   713,
  743.    709,   708,     7,   700,   694,   690,   671,     1 };
  744. int yyr1[]={
  745.  
  746.      0,    14,    14,    14,    14,    14,    14,    14,    14,    14,
  747.     14,    14,    14,    14,    15,    15,    15,    15,    15,    15,
  748.     15,    15,    15,    15,    15,    16,    16,    17,    17,    17,
  749.     17,    17,    17,     1,     1,     1,     1,     1,     1,    18,
  750.     18,    19,    19,    19,    19,    20,    20,    20,    21,    21,
  751.     21,    22,    22,    22,    22,    22,    23,    23,    23,    24,
  752.     24,    25,    25,    26,    26,    27,    27,    28,    28,    29,
  753.     29,    30,    30,     2,     2,     2,     2,     2,     2,     2,
  754.      2,     2,     2,     2,    31,    31,    32,    32,    33,    34,
  755.     34,    35,    35,    35,    36,    36,    37,    37,    38,    38,
  756.     38,    39,    39,    39,    39,    40,    40,    40,    40,    41,
  757.     41,    42,    42,    43,    43,    44,    44,    12,    12,    12,
  758.     12,    12,    45,    45,    46,    46,    46,    46,    46,    46,
  759.     46,    46,    46,    46,    46,    47,    47,    47,     3,     3,
  760.     48,    48,    49,    49,    50,    50,    51,    51,    51,    52,
  761.     52,    52,    53,    53,    54,    54,   126,    54,    55,    55,
  762.     56,    56,   127,    56,   128,    57,   129,    57,    57,    58,
  763.     58,    59,    59,    13,    13,    60,    61,    62,    62,    62,
  764.    130,    62,    63,    63,    63,   131,    63,    88,    88,    64,
  765.     64,    64,    64,    65,    65,    66,    66,    67,    67,    68,
  766.     68,    69,    69,    70,    70,    70,    71,    71,    72,    72,
  767.     72,    72,    73,    73,    74,    74,    75,    75,    75,   132,
  768.     75,   133,    75,    76,    76,    76,    77,    77,    78,    78,
  769.    134,   112,   112,   112,   112,   112,   112,   112,    79,    79,
  770.     79,    80,    80,    81,    81,    82,    82,    91,    91,    92,
  771.     92,   135,   135,   135,   135,    83,    83,    90,    90,    84,
  772.     85,    85,    85,    85,   111,   111,   110,   109,   109,    86,
  773.     86,    86,    87,    87,    87,    87,    87,    87,    87,   125,
  774.    125,   136,   136,   137,   137,   137,   140,   138,    89,    89,
  775.     89,    11,    11,   103,   103,     4,     4,     4,     4,   141,
  776.    139,   143,   143,   143,   142,   142,   144,   149,   150,   144,
  777.    146,     8,     8,     8,     8,     5,     5,     5,     5,     5,
  778.      5,     5,     5,     5,     5,     5,     5,     5,     5,     5,
  779.      5,     5,     5,     5,     5,     5,     5,     5,     5,     5,
  780.      5,     6,     6,     6,     6,     6,     6,     6,     6,     6,
  781.      6,     6,     6,     6,     6,     6,     6,     6,     6,     6,
  782.      6,     6,     6,     6,     6,     6,     6,     6,     6,     6,
  783.      6,     6,     6,     6,     6,     6,     6,     6,     6,     6,
  784.      6,     6,     6,     6,     6,     6,   147,   147,   147,   124,
  785.    124,   123,   123,   148,   148,   148,   151,   151,   152,   152,
  786.    152,   145,   145,    95,    95,    96,    96,    97,    97,    97,
  787.     97,   153,   154,    97,   102,   102,   102,   102,   105,   105,
  788.    107,   106,   106,   108,   108,   115,   115,   116,   104,   104,
  789.    113,   113,   114,   114,   114,   114,   114,   155,    99,   156,
  790.     99,   100,   100,   157,   157,   101,   101,    93,    93,    93,
  791.     93,    93,    93,    93,    93,    93,    93,    93,    94,     7,
  792.      7,     7,     7,     7,     7,     7,     7,     7,     7,     7,
  793.      7,     7,     7,     7,     7,     7,     7,     7,    98,    98,
  794.     98,    98,   117,   117,   117,   118,   118,   119,   120,   120,
  795.    120,   121,   121,   121,   121,   121,   121,     9,   122,   122,
  796.     10,    10,    10,    10,    10,    10,    10,    10 };
  797. int yyr2[]={
  798.  
  799.      0,     3,     3,     3,     3,     3,     3,     3,     3,     3,
  800.      3,     3,     3,     7,     2,     9,     7,     9,     7,     7,
  801.      5,     5,    13,    17,    21,     2,     7,     2,     5,     5,
  802.      5,     5,     9,     2,     2,     2,     2,     2,     2,     2,
  803.      9,     2,     7,     7,     7,     2,     7,     7,     2,     7,
  804.      7,     2,     7,     7,     7,     7,     2,     7,     7,     2,
  805.      7,     2,     7,     2,     7,     2,     7,     2,     7,     2,
  806.     11,     2,     7,     2,     2,     2,     2,     2,     2,     2,
  807.      2,     2,     2,     2,     2,     7,     1,     2,     2,     1,
  808.      2,     5,     7,     7,     2,     5,     2,     2,     3,     5,
  809.      2,     2,     5,     5,     5,     2,     2,     5,     5,     2,
  810.      7,     2,     7,     3,     7,     3,     7,     3,     3,     3,
  811.      3,     3,     2,     3,     3,     3,     3,     3,     3,     3,
  812.      3,     3,     3,     2,     2,    11,     9,     5,     2,     2,
  813.      2,     5,     7,     7,     2,     5,     3,     5,     2,     2,
  814.      5,     5,     2,     7,     3,     5,     1,     9,     2,     7,
  815.      3,     5,     1,     9,     1,    11,     1,    13,     5,     2,
  816.      7,     3,     7,     3,     3,     5,     5,     2,     7,     9,
  817.      1,    11,     3,     7,     9,     1,    11,     2,     2,     3,
  818.      5,     5,     7,     1,     2,     2,     5,     2,     7,     1,
  819.      2,     2,     7,     5,     2,     5,     3,     7,     2,     2,
  820.      5,     5,     2,     5,     2,     5,     7,     7,     9,     1,
  821.      9,     1,    11,     2,     7,     9,     2,     7,     2,     2,
  822.      1,     5,     2,     2,     2,     2,    11,    15,     7,     9,
  823.      7,     7,     9,     2,     5,     1,     2,     2,     5,     2,
  824.      9,     3,     5,     5,     5,     2,     5,     1,     2,     5,
  825.     11,    15,    11,    15,     3,     5,     5,     1,     7,    11,
  826.     15,    19,     7,     5,     5,     7,     7,     5,     5,     0,
  827.      2,     2,     4,     2,     3,     2,     1,     9,     3,     5,
  828.      5,     3,     3,     3,     3,     2,     2,     2,     2,     1,
  829.      6,     9,     7,     9,     1,     3,    17,     1,     1,    23,
  830.     11,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  831.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  832.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  833.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  834.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  835.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  836.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  837.      2,     2,     2,     2,     2,     2,     1,     5,     9,     3,
  838.      3,     1,     3,     0,     2,     9,     2,     7,     3,     5,
  839.      9,     1,     9,     1,     2,     2,     5,     2,     2,     2,
  840.      7,     1,     1,    13,     9,    13,    15,    19,     3,     5,
  841.      5,     1,     7,     5,     7,     2,     5,     7,     2,     5,
  842.      2,     7,    13,    13,    17,    17,    21,     1,     7,     1,
  843.      7,    11,    15,     0,     3,     3,     9,     3,     3,     3,
  844.      3,     3,     3,     3,     3,     3,     9,     9,     3,     2,
  845.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  846.      2,     2,     2,     2,     2,     2,     2,     2,     2,     5,
  847.      5,     5,     9,     7,     3,     2,     5,    15,     2,     7,
  848.      7,     3,     9,    11,     9,     7,     7,     2,     2,     7,
  849.      2,     2,     2,     2,     2,     2,     2,     2 };
  850. int yychk[]={
  851.  
  852.  -1000,  -125,  -136,  -137,  -138,   -35,  -139,   -89,   -36,   -40,
  853.   -141,   -61,   -38,   -12,   -13,   -65,    -4,   -39,   293,   294,
  854.    295,   296,   297,   307,   308,   -64,   310,   354,   355,   356,
  855.    -46,    42,   309,   299,   300,   301,   302,   305,   306,   303,
  856.    304,   -47,   -57,    -3,   313,   311,   312,  -137,  -140,    59,
  857.    -41,   -60,   -43,   -65,   -42,   -38,   -12,   -13,   -61,   -44,
  858.   -142,   258,   -63,    -5,    40,   257,    -7,   369,   377,   359,
  859.    365,   360,   331,   368,   375,   373,   351,   372,   382,   374,
  860.    370,   353,   352,   378,   376,   380,   358,   357,   379,   371,
  861.    364,   332,   333,   334,   335,   336,   338,   337,   339,   340,
  862.    341,   342,   343,   344,   345,   346,   347,   348,   349,   350,
  863.    -40,   -46,   -12,   -13,   -66,   -64,   -13,   -11,   123,    -5,
  864.     -4,  -128,   -11,   -82,   -81,   -35,   -36,   -40,    59,    44,
  865.     61,   -62,   -11,    40,    59,    44,    61,  -143,  -144,  -146,
  866.    361,   363,   362,    91,    40,   -61,   -64,   -13,   123,   -48,
  867.    -49,   -50,   -66,   -51,    -4,   -52,   -46,   123,  -129,   -80,
  868.    123,   -35,   -60,   -61,   -43,   -76,   -30,   123,   -29,   -17,
  869.    -28,   -15,   270,   271,    -1,   290,   -27,   -14,   328,   329,
  870.    330,    38,    42,    43,    45,   126,    33,   -26,    -5,   258,
  871.    259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
  872.     40,   -25,   -24,   -23,   -22,   -21,   -20,   -19,   -18,    91,
  873.     40,   -60,   -44,   -76,  -145,   365,   -96,   384,   -97,  -102,
  874.    -99,  -100,   123,   369,   317,   381,   383,   359,   368,   327,
  875.    123,   123,   123,   -34,   -33,   -29,   -17,  -131,    41,   -48,
  876.    125,   -49,   -53,   -54,   -60,    58,   -55,   -51,   -56,   -61,
  877.     58,   -66,   -46,   -13,   -58,   -59,   -11,   123,   -90,   -91,
  878.    -83,   -92,   -78,   -35,   298,   -79,  -112,  -103,   315,   316,
  879.   -134,   -84,   -85,   -86,   -87,   327,    -5,    -4,   -32,   317,
  880.    319,   381,   320,   321,   322,   323,   324,   325,   326,   366,
  881.    367,   385,   -31,   -30,   -77,   -76,    -2,    61,   280,   281,
  882.    282,   283,   284,   285,   286,   287,   288,   289,   279,    63,
  883.     91,    40,    46,   269,   270,   271,   -17,    40,   -17,   -18,
  884.    -17,    40,   278,    58,    58,    58,   124,   -31,   -73,   -72,
  885.    -45,   -13,   -46,    -4,    94,    38,   276,   277,    60,    62,
  886.    274,   275,   272,   273,    43,    45,    42,    47,    37,   -34,
  887.   -130,    41,   -96,   123,   360,   -97,    -8,   258,   263,   261,
  888.    265,   -95,   -96,  -153,  -104,  -113,    33,  -114,   328,   329,
  889.    330,  -101,    -5,    -5,  -155,  -156,    40,  -147,  -124,   265,
  890.     42,  -147,  -147,    93,   -88,   -68,   -71,   -67,    -5,   -69,
  891.    -70,   -37,   -36,   -40,   125,    59,    44,    58,   -33,    59,
  892.     44,    58,   -33,   125,    44,    61,   -58,   125,   -90,   -92,
  893.    -78,    -4,  -135,   299,   311,   312,    58,   -33,    58,   -80,
  894.     40,    59,    40,    40,   -31,    40,   -78,    40,  -103,    -5,
  895.     59,    59,   -98,   -32,   354,   355,   356,   -98,    59,    59,
  896.     44,   125,    44,   -30,   -27,   -31,   -31,    41,   -16,   -30,
  897.    -11,   -11,   -73,   -26,   -94,    -7,   -93,   335,   336,   338,
  898.    334,   354,   355,   356,   357,   358,    40,   -93,   -25,    41,
  899.     41,   -74,   -64,   -65,   -72,   -72,   -24,   -23,   -22,   -22,
  900.    -21,   -21,   -21,   -21,   -20,   -20,   -19,   -19,   -18,   -18,
  901.    -18,    93,   -88,   360,   -91,   360,   125,   123,   380,   278,
  902.   -114,    58,    58,    58,   382,    91,   382,   -80,   -80,   265,
  903.    125,  -123,    44,    43,  -149,   125,    41,    44,    44,   -61,
  904.    -74,   -65,   -54,  -126,   -56,  -127,   -59,   -33,   125,   125,
  905.    -41,    -5,   310,    -5,   -78,    58,   -78,   -30,   -31,   -31,
  906.    382,   -31,   320,   -32,    59,    59,   -30,   -30,   -30,    59,
  907.    -30,   125,   -76,    58,    93,    41,    44,    41,    40,    40,
  908.    331,    40,   -18,   -75,    40,    91,    41,   125,  -117,  -118,
  909.    326,  -119,   370,   -97,  -114,   -94,   -93,   -93,   123,   265,
  910.    123,    41,    44,    -6,    -5,    -4,   296,   325,   315,   299,
  911.    329,   307,   324,   330,   316,   321,   306,   318,   313,   385,
  912.    294,   367,   305,   322,   361,   323,   317,   301,   328,   362,
  913.    302,   363,   297,   326,   327,   300,   303,   290,   295,   311,
  914.    366,   319,   298,   293,   312,   304,   309,   308,   320,  -124,
  915.    125,    -6,    -5,   314,   -70,    40,   -33,   -33,    59,   -78,
  916.     41,    44,    41,    41,   123,    41,    40,    59,   -29,   -30,
  917.    -30,   -30,    41,   -30,    91,    40,   -74,  -132,   -34,  -154,
  918.    326,  -119,  -120,  -121,   -94,   371,   372,   370,    40,    91,
  919.    318,    40,    40,    40,  -105,  -107,  -108,   -94,    93,  -115,
  920.   -116,   265,  -157,    59,  -101,    40,  -123,   292,    59,   -30,
  921.    -78,   -78,  -111,  -110,  -108,   -78,   -31,   -32,    41,    44,
  922.    336,   354,    44,   -34,  -133,    41,   -68,    93,   125,  -120,
  923.   -157,    -9,   291,   270,    46,    40,   -94,    91,  -120,  -120,
  924.    -97,  -101,  -101,  -101,  -106,  -107,   316,   -97,   -94,    58,
  925.    316,  -116,    58,    41,  -148,  -151,  -152,    -5,   364,  -150,
  926.     41,   318,  -109,  -110,   316,  -112,    -7,    41,    59,   -30,
  927.    -30,    93,   -68,    41,  -157,  -121,  -121,   -10,   373,   374,
  928.    375,   376,   316,   377,   378,   379,  -101,    40,  -120,    41,
  929.     93,    41,    41,    44,    44,   125,    58,    58,    58,   -97,
  930.   -157,    41,    91,    44,    -5,    -6,    59,   -78,   125,    58,
  931.     59,   -32,    41,    44,    41,    41,  -122,  -120,    93,    61,
  932.    -30,   -30,   -97,   -97,    -5,  -152,   269,    40,  -112,    41,
  933.    -30,    41,    44,  -120,    41,    41,    44,   125,    93,    -5,
  934.   -148,   -78,    41,  -120,  -157,   -30,    41,    41 };
  935. int yydef[]={
  936.  
  937.     -2,    -2,    -2,   281,   283,   284,   285,   286,   193,   193,
  938.    304,   288,    94,   105,   106,     0,    98,   100,   117,   118,
  939.    119,   120,   121,   173,   174,   194,   295,   296,   297,   298,
  940.    101,   189,   124,   125,   126,   127,   128,   129,   130,   131,
  941.    132,   133,   134,     0,   164,   138,   139,   282,   245,    91,
  942.      0,    -2,   109,     0,     0,    95,   107,   108,    -2,   111,
  943.      0,   305,   176,   182,   193,   315,   316,   317,   318,   319,
  944.    320,   321,   322,   323,   324,   325,   326,   327,   328,   329,
  945.    330,   331,   332,   333,   334,   335,   336,   337,   338,   339,
  946.    340,   459,   460,   461,   462,   463,   464,   465,   466,   467,
  947.    468,   469,   470,   471,   472,   473,   474,   475,   476,   477,
  948.     99,   102,   103,   104,   190,   191,   195,   137,     0,   291,
  949.    292,     0,    -2,     0,   246,   243,   193,   193,    92,   193,
  950.      0,   175,   177,   193,    93,   193,     0,   300,   401,     0,
  951.      0,     0,     0,    89,   185,     0,   192,   196,     0,     0,
  952.    140,   193,   193,   144,   146,   148,   149,     0,     0,   287,
  953.     -2,   244,   113,   115,   110,   114,   223,     0,    71,    39,
  954.     69,    27,     0,     0,     0,     0,    67,    14,     0,     0,
  955.      0,    33,    34,    35,    36,    37,    38,    65,     1,     2,
  956.      3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
  957.      0,    63,    61,    59,    56,    51,    48,    45,    41,    89,
  958.    180,     0,   112,   116,     0,     0,     0,     0,   405,   407,
  959.    408,   409,   403,   411,     0,     0,     0,   437,   439,     0,
  960.    386,   386,   386,     0,    90,    88,    39,   199,   183,     0,
  961.    136,   141,     0,   152,   154,     0,     0,   145,   158,   160,
  962.      0,   147,   150,   151,     0,   169,   171,     0,     0,    -2,
  963.     -2,   247,   255,   249,     0,   228,   229,     0,     0,     0,
  964.      0,   232,   233,   234,   235,     0,    -2,    -2,     0,     0,
  965.      0,     0,     0,    -2,     0,     0,     0,     0,    86,    86,
  966.      0,     0,    87,    84,     0,   226,     0,    73,    74,    75,
  967.     76,    77,    78,    79,    80,    81,    82,    83,     0,     0,
  968.      0,     0,     0,     0,    20,    21,    28,     0,    29,    30,
  969.     31,     0,     0,     0,     0,     0,     0,     0,     0,    -2,
  970.    208,   209,   122,   123,     0,     0,     0,     0,     0,     0,
  971.      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  972.    199,   178,     0,     0,   302,   406,     0,   311,   312,   313,
  973.    314,     0,   404,     0,     0,   428,     0,   430,     0,     0,
  974.      0,     0,   445,     0,     0,     0,     0,     0,   391,   389,
  975.    390,   307,     0,   184,     0,   187,   188,   200,   206,   197,
  976.    201,    -2,    96,    97,   135,   142,   193,   156,   155,   143,
  977.    193,   162,   161,   165,     0,     0,     0,   241,     0,   248,
  978.    256,   294,   193,   251,     0,     0,    -2,     0,    -2,   231,
  979.      0,   259,     0,     0,     0,     0,     0,    86,     0,   293,
  980.    273,   274,     0,   478,     0,     0,     0,     0,   277,   278,
  981.      0,   224,     0,    72,    68,     0,     0,    16,     0,    25,
  982.     18,    19,     0,    66,     0,   458,     0,   447,   448,   449,
  983.    450,   451,   452,   453,   454,   455,     0,     0,    64,    13,
  984.      0,   213,    -2,     0,   210,   211,    62,    60,    57,    58,
  985.     52,    53,    54,    55,    49,    50,    46,    47,    42,    43,
  986.     44,   179,     0,   301,     0,   303,   410,     0,     0,     0,
  987.    429,     0,     0,     0,     0,     0,     0,   438,   440,     0,
  988.      0,   387,     0,   392,     0,     0,   186,     0,     0,   203,
  989.    205,     0,   153,     0,   159,     0,   170,   172,   167,   242,
  990.      0,   252,   253,   254,   238,    -2,   240,     0,     0,     0,
  991.      0,     0,     0,     0,   272,   275,   479,   480,   481,   276,
  992.     85,   225,   227,     0,    15,    17,     0,    32,     0,     0,
  993.      0,     0,    40,   215,    -2,    89,   181,   402,   412,   484,
  994.      0,   485,     0,   414,   431,     0,     0,     0,     0,     0,
  995.      0,   443,     0,     0,   341,   342,   343,   344,   345,   346,
  996.    347,   348,   349,   350,   351,   352,   353,   354,   355,   356,
  997.    357,   358,   359,   360,   361,   362,   363,   364,   365,   366,
  998.    367,   368,   369,   370,   371,   372,   373,   374,   375,   376,
  999.    377,   378,   379,   380,   381,   382,   383,   384,   385,   391,
  1000.      0,   310,   207,   198,   202,    -2,   157,   163,   250,   239,
  1001.      0,     0,    -2,    -2,     0,    -2,     0,    86,    70,    26,
  1002.      0,     0,     0,     0,    89,   221,     0,   199,     0,     0,
  1003.      0,   486,   443,   488,   491,     0,     0,     0,     0,     0,
  1004.      0,     0,     0,     0,   421,   418,     0,     0,   446,     0,
  1005.    425,     0,   441,   444,     0,   393,   388,   308,   236,     0,
  1006.    260,   262,   267,   264,    -2,   269,     0,     0,    22,     0,
  1007.    456,   457,     0,     0,   199,   216,     0,   217,   413,   443,
  1008.    483,     0,     0,   497,     0,     0,     0,     0,     0,     0,
  1009.    415,     0,     0,     0,     0,   419,     0,   420,     0,   423,
  1010.      0,   426,     0,   443,     0,   394,   396,   398,   340,     0,
  1011.      0,    -2,     0,   265,     0,   266,    -2,     0,    86,     0,
  1012.      0,   218,     0,   220,   482,   489,   490,   495,   500,   501,
  1013.    502,   503,   504,   505,   506,   507,     0,     0,     0,   496,
  1014.      0,   432,   433,     0,     0,   416,     0,   424,     0,   427,
  1015.    442,   306,     0,     0,   399,     0,   237,   261,   263,    -2,
  1016.    270,     0,    23,     0,   222,   492,     0,   498,   494,     0,
  1017.      0,     0,   422,     0,     0,   397,     0,   393,   268,    -2,
  1018.      0,   493,     0,   443,   434,   435,     0,   417,   395,   400,
  1019.      0,   271,    24,   499,   487,     0,   309,   436 };
  1020. typedef struct { char *t_name; int t_val; } yytoktype;
  1021. #ifndef YYDEBUG
  1022. #    define YYDEBUG    0    /* don't allow debugging */
  1023. #endif
  1024.  
  1025. #if YYDEBUG
  1026.  
  1027. yytoktype yytoks[] =
  1028. {
  1029.     "Identifier",    257,
  1030.     "StrLit",    258,
  1031.     "LStrLit",    259,
  1032.     "FltConst",    260,
  1033.     "DblConst",    261,
  1034.     "LDblConst",    262,
  1035.     "CharConst",    263,
  1036.     "LCharConst",    264,
  1037.     "IntConst",    265,
  1038.     "UIntConst",    266,
  1039.     "LIntConst",    267,
  1040.     "ULIntConst",    268,
  1041.     "Arrow",    269,
  1042.     "Incr",    270,
  1043.     "Decr",    271,
  1044.     "LShft",    272,
  1045.     "RShft",    273,
  1046.     "Leq",    274,
  1047.     "Geq",    275,
  1048.     "Equal",    276,
  1049.     "Neq",    277,
  1050.     "And",    278,
  1051.     "Or",    279,
  1052.     "MultAsgn",    280,
  1053.     "DivAsgn",    281,
  1054.     "ModAsgn",    282,
  1055.     "PlusAsgn",    283,
  1056.     "MinusAsgn",    284,
  1057.     "LShftAsgn",    285,
  1058.     "RShftAsgn",    286,
  1059.     "AndAsgn",    287,
  1060.     "XorAsgn",    288,
  1061.     "OrAsgn",    289,
  1062.     "Sizeof",    290,
  1063.     "Intersect",    291,
  1064.     "OpSym",    292,
  1065.     "Typedef",    293,
  1066.     "Extern",    294,
  1067.     "Static",    295,
  1068.     "Auto",    296,
  1069.     "Register",    297,
  1070.     "Tended",    298,
  1071.     "Char",    299,
  1072.     "Short",    300,
  1073.     "Int",    301,
  1074.     "Long",    302,
  1075.     "Signed",    303,
  1076.     "Unsigned",    304,
  1077.     "Float",    305,
  1078.     "Doubl",    306,
  1079.     "Const",    307,
  1080.     "Volatile",    308,
  1081.     "Void",    309,
  1082.     "TypeDefName",    310,
  1083.     "Struct",    311,
  1084.     "Union",    312,
  1085.     "Enum",    313,
  1086.     "Elipsis",    314,
  1087.     "Case",    315,
  1088.     "Default",    316,
  1089.     "If",    317,
  1090.     "Else",    318,
  1091.     "Switch",    319,
  1092.     "While",    320,
  1093.     "Do",    321,
  1094.     "For",    322,
  1095.     "Goto",    323,
  1096.     "Continue",    324,
  1097.     "Break",    325,
  1098.     "Return",    326,
  1099.     "%",    37,
  1100.     "&",    38,
  1101.     "(",    40,
  1102.     ")",    41,
  1103.     "*",    42,
  1104.     "+",    43,
  1105.     ",",    44,
  1106.     "-",    45,
  1107.     ".",    46,
  1108.     "/",    47,
  1109.     "{",    123,
  1110.     "|",    124,
  1111.     "}",    125,
  1112.     "~",    126,
  1113.     "[",    91,
  1114.     "]",    93,
  1115.     "^",    94,
  1116.     ":",    58,
  1117.     ";",    59,
  1118.     "<",    60,
  1119.     "=",    61,
  1120.     ">",    62,
  1121.     "?",    63,
  1122.     "!",    33,
  1123.     "@",    64,
  1124.     "\\",    92,
  1125.     "Runerr",    327,
  1126.     "Is",    328,
  1127.     "Cnv",    329,
  1128.     "Def",    330,
  1129.     "Exact",    331,
  1130.     "Empty_type",    332,
  1131.     "Null",    333,
  1132.     "String",    334,
  1133.     "Cset",    335,
  1134.     "Integer",    336,
  1135.     "File",    337,
  1136.     "Real",    338,
  1137.     "List",    339,
  1138.     "Set",    340,
  1139.     "Table",    341,
  1140.     "Record",    342,
  1141.     "Procedure",    343,
  1142.     "Co_expression",    344,
  1143.     "Variable",    345,
  1144.     "Tvsubs",    346,
  1145.     "Tvtbl",    347,
  1146.     "Kywdint",    348,
  1147.     "Kywdpos",    349,
  1148.     "Kywdsubj",    350,
  1149.     "Named_var",    351,
  1150.     "Struct_var",    352,
  1151.     "Substr",    353,
  1152.     "C_Integer",    354,
  1153.     "C_Double",    355,
  1154.     "C_String",    356,
  1155.     "Tmp_string",    357,
  1156.     "Tmp_cset",    358,
  1157.     "Body",    359,
  1158.     "End",    360,
  1159.     "Function",    361,
  1160.     "Keyword",    362,
  1161.     "Operator",    363,
  1162.     "Underef",    364,
  1163.     "Declare",    365,
  1164.     "Suspend",    366,
  1165.     "Fail",    367,
  1166.     "Inline",    368,
  1167.     "Abstract",    369,
  1168.     "Store",    370,
  1169.     "Type",    371,
  1170.     "New",    372,
  1171.     "Lst_elem",    373,
  1172.     "Set_elem",    374,
  1173.     "Key",    375,
  1174.     "Tbl_elem",    376,
  1175.     "All_fields",    377,
  1176.     "Str_var",    378,
  1177.     "Trpd_tbl",    379,
  1178.     "Then",    380,
  1179.     "Type_case",    381,
  1180.     "Of",    382,
  1181.     "Len_case",    383,
  1182.     "Constant",    384,
  1183.     "Errorfail",    385,
  1184.     "IfStmt",    386,
  1185.     "-unknown-",    -1    /* ends search */
  1186. };
  1187.  
  1188. char * yyreds[] =
  1189. {
  1190.     "-no such reduction-",
  1191.     "primary_expr : identifier",
  1192.     "primary_expr : StrLit",
  1193.     "primary_expr : LStrLit",
  1194.     "primary_expr : FltConst",
  1195.     "primary_expr : DblConst",
  1196.     "primary_expr : LDblConst",
  1197.     "primary_expr : CharConst",
  1198.     "primary_expr : LCharConst",
  1199.     "primary_expr : IntConst",
  1200.     "primary_expr : UIntConst",
  1201.     "primary_expr : LIntConst",
  1202.     "primary_expr : ULIntConst",
  1203.     "primary_expr : '(' expr ')'",
  1204.     "postfix_expr : primary_expr",
  1205.     "postfix_expr : postfix_expr '[' expr ']'",
  1206.     "postfix_expr : postfix_expr '(' ')'",
  1207.     "postfix_expr : postfix_expr '(' arg_expr_lst ')'",
  1208.     "postfix_expr : postfix_expr '.' any_ident",
  1209.     "postfix_expr : postfix_expr Arrow any_ident",
  1210.     "postfix_expr : postfix_expr Incr",
  1211.     "postfix_expr : postfix_expr Decr",
  1212.     "postfix_expr : Is ':' i_type_name '(' assign_expr ')'",
  1213.     "postfix_expr : Cnv ':' dest_type '(' assign_expr ',' assign_expr ')'",
  1214.     "postfix_expr : Def ':' dest_type '(' assign_expr ',' assign_expr ',' assign_expr ')'",
  1215.     "arg_expr_lst : assign_expr",
  1216.     "arg_expr_lst : arg_expr_lst ',' assign_expr",
  1217.     "unary_expr : postfix_expr",
  1218.     "unary_expr : Incr unary_expr",
  1219.     "unary_expr : Decr unary_expr",
  1220.     "unary_expr : unary_op cast_expr",
  1221.     "unary_expr : Sizeof unary_expr",
  1222.     "unary_expr : Sizeof '(' type_name ')'",
  1223.     "unary_op : '&'",
  1224.     "unary_op : '*'",
  1225.     "unary_op : '+'",
  1226.     "unary_op : '-'",
  1227.     "unary_op : '~'",
  1228.     "unary_op : '!'",
  1229.     "cast_expr : unary_expr",
  1230.     "cast_expr : '(' type_name ')' cast_expr",
  1231.     "multiplicative_expr : cast_expr",
  1232.     "multiplicative_expr : multiplicative_expr '*' cast_expr",
  1233.     "multiplicative_expr : multiplicative_expr '/' cast_expr",
  1234.     "multiplicative_expr : multiplicative_expr '%' cast_expr",
  1235.     "additive_expr : multiplicative_expr",
  1236.     "additive_expr : additive_expr '+' multiplicative_expr",
  1237.     "additive_expr : additive_expr '-' multiplicative_expr",
  1238.     "shift_expr : additive_expr",
  1239.     "shift_expr : shift_expr LShft additive_expr",
  1240.     "shift_expr : shift_expr RShft additive_expr",
  1241.     "relational_expr : shift_expr",
  1242.     "relational_expr : relational_expr '<' shift_expr",
  1243.     "relational_expr : relational_expr '>' shift_expr",
  1244.     "relational_expr : relational_expr Leq shift_expr",
  1245.     "relational_expr : relational_expr Geq shift_expr",
  1246.     "equality_expr : relational_expr",
  1247.     "equality_expr : equality_expr Equal relational_expr",
  1248.     "equality_expr : equality_expr Neq relational_expr",
  1249.     "and_expr : equality_expr",
  1250.     "and_expr : and_expr '&' equality_expr",
  1251.     "exclusive_or_expr : and_expr",
  1252.     "exclusive_or_expr : exclusive_or_expr '^' and_expr",
  1253.     "inclusive_or_expr : exclusive_or_expr",
  1254.     "inclusive_or_expr : inclusive_or_expr '|' exclusive_or_expr",
  1255.     "logical_and_expr : inclusive_or_expr",
  1256.     "logical_and_expr : logical_and_expr And inclusive_or_expr",
  1257.     "logical_or_expr : logical_and_expr",
  1258.     "logical_or_expr : logical_or_expr Or logical_and_expr",
  1259.     "conditional_expr : logical_or_expr",
  1260.     "conditional_expr : logical_or_expr '?' expr ':' conditional_expr",
  1261.     "assign_expr : conditional_expr",
  1262.     "assign_expr : unary_expr assign_op assign_expr",
  1263.     "assign_op : '='",
  1264.     "assign_op : MultAsgn",
  1265.     "assign_op : DivAsgn",
  1266.     "assign_op : ModAsgn",
  1267.     "assign_op : PlusAsgn",
  1268.     "assign_op : MinusAsgn",
  1269.     "assign_op : LShftAsgn",
  1270.     "assign_op : RShftAsgn",
  1271.     "assign_op : AndAsgn",
  1272.     "assign_op : XorAsgn",
  1273.     "assign_op : OrAsgn",
  1274.     "expr : assign_expr",
  1275.     "expr : expr ',' assign_expr",
  1276.     "opt_expr : /* empty */",
  1277.     "opt_expr : expr",
  1278.     "constant_expr : conditional_expr",
  1279.     "opt_constant_expr : /* empty */",
  1280.     "opt_constant_expr : constant_expr",
  1281.     "dcltion : typ_dcltion_specs ';'",
  1282.     "dcltion : typ_dcltion_specs init_dcltor_lst ';'",
  1283.     "dcltion : storcl_tqual_lst no_tdn_init_dcltor_lst ';'",
  1284.     "typ_dcltion_specs : type_ind",
  1285.     "typ_dcltion_specs : storcl_tqual_lst type_ind",
  1286.     "dcltion_specs : typ_dcltion_specs",
  1287.     "dcltion_specs : storcl_tqual_lst",
  1288.     "type_ind : typedefname",
  1289.     "type_ind : typedefname storcl_tqual_lst",
  1290.     "type_ind : type_storcl_tqual_lst",
  1291.     "type_storcl_tqual_lst : stnd_type",
  1292.     "type_storcl_tqual_lst : type_storcl_tqual_lst stnd_type",
  1293.     "type_storcl_tqual_lst : type_storcl_tqual_lst storage_class_spec",
  1294.     "type_storcl_tqual_lst : type_storcl_tqual_lst type_qual",
  1295.     "storcl_tqual_lst : storage_class_spec",
  1296.     "storcl_tqual_lst : type_qual",
  1297.     "storcl_tqual_lst : storcl_tqual_lst storage_class_spec",
  1298.     "storcl_tqual_lst : storcl_tqual_lst type_qual",
  1299.     "init_dcltor_lst : init_dcltor",
  1300.     "init_dcltor_lst : init_dcltor_lst ',' init_dcltor",
  1301.     "no_tdn_init_dcltor_lst : no_tdn_init_dcltor",
  1302.     "no_tdn_init_dcltor_lst : no_tdn_init_dcltor_lst ',' no_tdn_init_dcltor",
  1303.     "init_dcltor : dcltor",
  1304.     "init_dcltor : dcltor '=' initializer",
  1305.     "no_tdn_init_dcltor : no_tdn_dcltor",
  1306.     "no_tdn_init_dcltor : no_tdn_dcltor '=' initializer",
  1307.     "storage_class_spec : Typedef",
  1308.     "storage_class_spec : Extern",
  1309.     "storage_class_spec : Static",
  1310.     "storage_class_spec : Auto",
  1311.     "storage_class_spec : Register",
  1312.     "type_spec : stnd_type",
  1313.     "type_spec : typedefname",
  1314.     "stnd_type : Void",
  1315.     "stnd_type : Char",
  1316.     "stnd_type : Short",
  1317.     "stnd_type : Int",
  1318.     "stnd_type : Long",
  1319.     "stnd_type : Float",
  1320.     "stnd_type : Doubl",
  1321.     "stnd_type : Signed",
  1322.     "stnd_type : Unsigned",
  1323.     "stnd_type : struct_or_union_spec",
  1324.     "stnd_type : enum_spec",
  1325.     "struct_or_union_spec : struct_or_union any_ident '{' struct_dcltion_lst '}'",
  1326.     "struct_or_union_spec : struct_or_union '{' struct_dcltion_lst '}'",
  1327.     "struct_or_union_spec : struct_or_union any_ident",
  1328.     "struct_or_union : Struct",
  1329.     "struct_or_union : Union",
  1330.     "struct_dcltion_lst : struct_dcltion",
  1331.     "struct_dcltion_lst : struct_dcltion_lst struct_dcltion",
  1332.     "struct_dcltion : struct_dcltion_specs struct_dcltor_lst ';'",
  1333.     "struct_dcltion : tqual_lst struct_no_tdn_dcltor_lst ';'",
  1334.     "struct_dcltion_specs : struct_type_ind",
  1335.     "struct_dcltion_specs : tqual_lst struct_type_ind",
  1336.     "struct_type_ind : typedefname",
  1337.     "struct_type_ind : typedefname tqual_lst",
  1338.     "struct_type_ind : struct_type_lst",
  1339.     "struct_type_lst : stnd_type",
  1340.     "struct_type_lst : struct_type_lst stnd_type",
  1341.     "struct_type_lst : struct_type_lst type_qual",
  1342.     "struct_dcltor_lst : struct_dcltor",
  1343.     "struct_dcltor_lst : struct_dcltor_lst ',' struct_dcltor",
  1344.     "struct_dcltor : dcltor",
  1345.     "struct_dcltor : ':' constant_expr",
  1346.     "struct_dcltor : dcltor ':'",
  1347.     "struct_dcltor : dcltor ':' constant_expr",
  1348.     "struct_no_tdn_dcltor_lst : struct_no_tdn_dcltor",
  1349.     "struct_no_tdn_dcltor_lst : struct_no_tdn_dcltor_lst ',' struct_no_tdn_dcltor",
  1350.     "struct_no_tdn_dcltor : no_tdn_dcltor",
  1351.     "struct_no_tdn_dcltor : ':' constant_expr",
  1352.     "struct_no_tdn_dcltor : no_tdn_dcltor ':'",
  1353.     "struct_no_tdn_dcltor : no_tdn_dcltor ':' constant_expr",
  1354.     "enum_spec : Enum",
  1355.     "enum_spec : Enum '{' enumerator_lst '}'",
  1356.     "enum_spec : Enum any_ident",
  1357.     "enum_spec : Enum any_ident '{' enumerator_lst '}'",
  1358.     "enum_spec : Enum any_ident",
  1359.     "enumerator_lst : enumerator",
  1360.     "enumerator_lst : enumerator_lst ',' enumerator",
  1361.     "enumerator : any_ident",
  1362.     "enumerator : any_ident '=' constant_expr",
  1363.     "type_qual : Const",
  1364.     "type_qual : Volatile",
  1365.     "dcltor : opt_pointer direct_dcltor",
  1366.     "no_tdn_dcltor : opt_pointer no_tdn_direct_dcltor",
  1367.     "direct_dcltor : any_ident",
  1368.     "direct_dcltor : '(' dcltor ')'",
  1369.     "direct_dcltor : direct_dcltor '[' opt_constant_expr ']'",
  1370.     "direct_dcltor : direct_dcltor '('",
  1371.     "direct_dcltor : direct_dcltor '(' parm_dcls_or_ids ')'",
  1372.     "no_tdn_direct_dcltor : identifier",
  1373.     "no_tdn_direct_dcltor : '(' no_tdn_dcltor ')'",
  1374.     "no_tdn_direct_dcltor : no_tdn_direct_dcltor '[' opt_constant_expr ']'",
  1375.     "no_tdn_direct_dcltor : no_tdn_direct_dcltor '('",
  1376.     "no_tdn_direct_dcltor : no_tdn_direct_dcltor '(' parm_dcls_or_ids ')'",
  1377.     "parm_dcls_or_ids : opt_param_type_lst",
  1378.     "parm_dcls_or_ids : ident_lst",
  1379.     "pointer : '*'",
  1380.     "pointer : '*' tqual_lst",
  1381.     "pointer : '*' pointer",
  1382.     "pointer : '*' tqual_lst pointer",
  1383.     "opt_pointer : /* empty */",
  1384.     "opt_pointer : pointer",
  1385.     "tqual_lst : type_qual",
  1386.     "tqual_lst : tqual_lst type_qual",
  1387.     "param_type_lst : param_lst",
  1388.     "param_type_lst : param_lst ',' Elipsis",
  1389.     "opt_param_type_lst : /* empty */",
  1390.     "opt_param_type_lst : param_type_lst",
  1391.     "param_lst : param_dcltion",
  1392.     "param_lst : param_lst ',' param_dcltion",
  1393.     "param_dcltion : dcltion_specs no_tdn_dcltor",
  1394.     "param_dcltion : dcltion_specs",
  1395.     "param_dcltion : dcltion_specs abstract_dcltor",
  1396.     "ident_lst : identifier",
  1397.     "ident_lst : ident_lst ',' identifier",
  1398.     "type_tqual_lst : type_spec",
  1399.     "type_tqual_lst : type_qual",
  1400.     "type_tqual_lst : type_spec type_tqual_lst",
  1401.     "type_tqual_lst : type_qual type_tqual_lst",
  1402.     "type_name : type_tqual_lst",
  1403.     "type_name : type_tqual_lst abstract_dcltor",
  1404.     "abstract_dcltor : pointer",
  1405.     "abstract_dcltor : opt_pointer direct_abstract_dcltor",
  1406.     "direct_abstract_dcltor : '(' abstract_dcltor ')'",
  1407.     "direct_abstract_dcltor : '[' opt_constant_expr ']'",
  1408.     "direct_abstract_dcltor : direct_abstract_dcltor '[' opt_constant_expr ']'",
  1409.     "direct_abstract_dcltor : '('",
  1410.     "direct_abstract_dcltor : '(' opt_param_type_lst ')'",
  1411.     "direct_abstract_dcltor : direct_abstract_dcltor '('",
  1412.     "direct_abstract_dcltor : direct_abstract_dcltor '(' opt_param_type_lst ')'",
  1413.     "initializer : assign_expr",
  1414.     "initializer : '{' initializer_lst '}'",
  1415.     "initializer : '{' initializer_lst ',' '}'",
  1416.     "initializer_lst : initializer",
  1417.     "initializer_lst : initializer_lst ',' initializer",
  1418.     "stmt : labeled_stmt",
  1419.     "stmt : non_lbl_stmt",
  1420.     "non_lbl_stmt : /* empty */",
  1421.     "non_lbl_stmt : compound_stmt",
  1422.     "non_lbl_stmt : expr_stmt",
  1423.     "non_lbl_stmt : selection_stmt",
  1424.     "non_lbl_stmt : iteration_stmt",
  1425.     "non_lbl_stmt : jump_stmt",
  1426.     "non_lbl_stmt : Runerr '(' assign_expr ')' ';'",
  1427.     "non_lbl_stmt : Runerr '(' assign_expr ',' assign_expr ')' ';'",
  1428.     "labeled_stmt : label ':' stmt",
  1429.     "labeled_stmt : Case constant_expr ':' stmt",
  1430.     "labeled_stmt : Default ':' stmt",
  1431.     "compound_stmt : '{' opt_stmt_lst '}'",
  1432.     "compound_stmt : '{' local_dcls opt_stmt_lst '}'",
  1433.     "dcltion_lst : dcltion",
  1434.     "dcltion_lst : dcltion_lst dcltion",
  1435.     "opt_dcltion_lst : /* empty */",
  1436.     "opt_dcltion_lst : dcltion_lst",
  1437.     "local_dcls : local_dcl",
  1438.     "local_dcls : local_dcls local_dcl",
  1439.     "local_dcl : dcltion",
  1440.     "local_dcl : Tended tended_type init_dcltor_lst ';'",
  1441.     "tended_type : Char",
  1442.     "tended_type : Struct identifier",
  1443.     "tended_type : Struct TypeDefName",
  1444.     "tended_type : Union identifier",
  1445.     "stmt_lst : stmt",
  1446.     "stmt_lst : stmt_lst stmt",
  1447.     "opt_stmt_lst : /* empty */",
  1448.     "opt_stmt_lst : stmt_lst",
  1449.     "expr_stmt : opt_expr ';'",
  1450.     "selection_stmt : If '(' expr ')' stmt",
  1451.     "selection_stmt : If '(' expr ')' stmt Else stmt",
  1452.     "selection_stmt : Switch '(' expr ')' stmt",
  1453.     "selection_stmt : Type_case expr Of '{' c_type_select_lst c_opt_default '}'",
  1454.     "c_type_select_lst : c_type_select",
  1455.     "c_type_select_lst : c_type_select_lst c_type_select",
  1456.     "c_type_select : selector_lst non_lbl_stmt",
  1457.     "c_opt_default : /* empty */",
  1458.     "c_opt_default : Default ':' non_lbl_stmt",
  1459.     "iteration_stmt : While '(' expr ')' stmt",
  1460.     "iteration_stmt : Do stmt While '(' expr ')' ';'",
  1461.     "iteration_stmt : For '(' opt_expr ';' opt_expr ';' opt_expr ')' stmt",
  1462.     "jump_stmt : Goto label ';'",
  1463.     "jump_stmt : Continue ';'",
  1464.     "jump_stmt : Break ';'",
  1465.     "jump_stmt : Return ret_val ';'",
  1466.     "jump_stmt : Suspend ret_val ';'",
  1467.     "jump_stmt : Fail ';'",
  1468.     "jump_stmt : Errorfail ';'",
  1469.     "translation_unit : /* empty */",
  1470.     "translation_unit : extrn_decltn_lst",
  1471.     "extrn_decltn_lst : external_dcltion",
  1472.     "extrn_decltn_lst : extrn_decltn_lst external_dcltion",
  1473.     "external_dcltion : function_definition",
  1474.     "external_dcltion : dcltion",
  1475.     "external_dcltion : definition",
  1476.     "function_definition : func_head",
  1477.     "function_definition : func_head opt_dcltion_lst compound_stmt",
  1478.     "func_head : no_tdn_dcltor",
  1479.     "func_head : storcl_tqual_lst no_tdn_dcltor",
  1480.     "func_head : typ_dcltion_specs dcltor",
  1481.     "any_ident : identifier",
  1482.     "any_ident : typedefname",
  1483.     "label : identifier",
  1484.     "label : typedefname",
  1485.     "typedefname : TypeDefName",
  1486.     "typedefname : C_Integer",
  1487.     "typedefname : C_Double",
  1488.     "typedefname : C_String",
  1489.     "definition : /* empty */",
  1490.     "definition : description operation",
  1491.     "operation : fnc_oper op_declare actions End",
  1492.     "operation : keyword actions End",
  1493.     "operation : keyword Constant key_const End",
  1494.     "description : /* empty */",
  1495.     "description : StrLit",
  1496.     "fnc_oper : Function '{' result_seq '}' op_name '(' opt_s_parm_lst ')'",
  1497.     "fnc_oper : Operator '{' result_seq",
  1498.     "fnc_oper : Operator '{' result_seq '}' OpSym",
  1499.     "fnc_oper : Operator '{' result_seq '}' OpSym op_name '(' opt_s_parm_lst ')'",
  1500.     "keyword : Keyword '{' result_seq '}' op_name",
  1501.     "key_const : StrLit",
  1502.     "key_const : CharConst",
  1503.     "key_const : DblConst",
  1504.     "key_const : IntConst",
  1505.     "identifier : Identifier",
  1506.     "identifier : i_type_tok",
  1507.     "identifier : Abstract",
  1508.     "identifier : All_fields",
  1509.     "identifier : Body",
  1510.     "identifier : Declare",
  1511.     "identifier : End",
  1512.     "identifier : Exact",
  1513.     "identifier : Inline",
  1514.     "identifier : Key",
  1515.     "identifier : Lst_elem",
  1516.     "identifier : Named_var",
  1517.     "identifier : New",
  1518.     "identifier : Of",
  1519.     "identifier : Set_elem",
  1520.     "identifier : Store",
  1521.     "identifier : Substr",
  1522.     "identifier : Struct_var",
  1523.     "identifier : Str_var",
  1524.     "identifier : Tbl_elem",
  1525.     "identifier : Then",
  1526.     "identifier : Tmp_cset",
  1527.     "identifier : Tmp_string",
  1528.     "identifier : Trpd_tbl",
  1529.     "identifier : Type",
  1530.     "identifier : Underef",
  1531.     "op_name : identifier",
  1532.     "op_name : typedefname",
  1533.     "op_name : Auto",
  1534.     "op_name : Break",
  1535.     "op_name : Case",
  1536.     "op_name : Char",
  1537.     "op_name : Cnv",
  1538.     "op_name : Const",
  1539.     "op_name : Continue",
  1540.     "op_name : Def",
  1541.     "op_name : Default",
  1542.     "op_name : Do",
  1543.     "op_name : Doubl",
  1544.     "op_name : Else",
  1545.     "op_name : Enum",
  1546.     "op_name : Errorfail",
  1547.     "op_name : Extern",
  1548.     "op_name : Fail",
  1549.     "op_name : Float",
  1550.     "op_name : For",
  1551.     "op_name : Function",
  1552.     "op_name : Goto",
  1553.     "op_name : If",
  1554.     "op_name : Int",
  1555.     "op_name : Is",
  1556.     "op_name : Keyword",
  1557.     "op_name : Long",
  1558.     "op_name : Operator",
  1559.     "op_name : Register",
  1560.     "op_name : Return",
  1561.     "op_name : Runerr",
  1562.     "op_name : Short",
  1563.     "op_name : Signed",
  1564.     "op_name : Sizeof",
  1565.     "op_name : Static",
  1566.     "op_name : Struct",
  1567.     "op_name : Suspend",
  1568.     "op_name : Switch",
  1569.     "op_name : Tended",
  1570.     "op_name : Typedef",
  1571.     "op_name : Union",
  1572.     "op_name : Unsigned",
  1573.     "op_name : Void",
  1574.     "op_name : Volatile",
  1575.     "op_name : While",
  1576.     "result_seq : /* empty */",
  1577.     "result_seq : length opt_plus",
  1578.     "result_seq : length ',' length opt_plus",
  1579.     "length : IntConst",
  1580.     "length : '*'",
  1581.     "opt_plus : /* empty */",
  1582.     "opt_plus : '+'",
  1583.     "opt_s_parm_lst : /* empty */",
  1584.     "opt_s_parm_lst : s_parm_lst",
  1585.     "opt_s_parm_lst : s_parm_lst '[' identifier ']'",
  1586.     "s_parm_lst : s_parm",
  1587.     "s_parm_lst : s_parm_lst ',' s_parm",
  1588.     "s_parm : identifier",
  1589.     "s_parm : Underef identifier",
  1590.     "s_parm : Underef identifier Arrow identifier",
  1591.     "op_declare : /* empty */",
  1592.     "op_declare : Declare '{' local_dcls '}'",
  1593.     "opt_actions : /* empty */",
  1594.     "opt_actions : actions",
  1595.     "actions : action",
  1596.     "actions : actions action",
  1597.     "action : checking_conversions",
  1598.     "action : detail_code",
  1599.     "action : runerr",
  1600.     "action : '{' opt_actions '}'",
  1601.     "action : Abstract",
  1602.     "action : Abstract '{' type_computations",
  1603.     "action : Abstract '{' type_computations '}'",
  1604.     "checking_conversions : If type_check Then action",
  1605.     "checking_conversions : If type_check Then action Else action",
  1606.     "checking_conversions : Type_case variable Of '{' type_select_lst opt_default '}'",
  1607.     "checking_conversions : Len_case identifier Of '{' len_select_lst Default ':' action '}'",
  1608.     "type_select_lst : type_select",
  1609.     "type_select_lst : type_select_lst type_select",
  1610.     "type_select : selector_lst action",
  1611.     "opt_default : /* empty */",
  1612.     "opt_default : Default ':' action",
  1613.     "selector_lst : i_type_name ':'",
  1614.     "selector_lst : selector_lst i_type_name ':'",
  1615.     "len_select_lst : len_select",
  1616.     "len_select_lst : len_select_lst len_select",
  1617.     "len_select : IntConst ':' action",
  1618.     "type_check : simple_check_conj",
  1619.     "type_check : '!' simple_check",
  1620.     "simple_check_conj : simple_check",
  1621.     "simple_check_conj : simple_check_conj And simple_check",
  1622.     "simple_check : Is ':' i_type_name '(' variable ')'",
  1623.     "simple_check : Cnv ':' dest_type '(' variable ')'",
  1624.     "simple_check : Cnv ':' dest_type '(' variable ',' assign_expr ')'",
  1625.     "simple_check : Def ':' dest_type '(' variable ',' assign_expr ')'",
  1626.     "simple_check : Def ':' dest_type '(' variable ',' assign_expr ',' assign_expr ')'",
  1627.     "detail_code : Body",
  1628.     "detail_code : Body compound_stmt",
  1629.     "detail_code : Inline",
  1630.     "detail_code : Inline compound_stmt",
  1631.     "runerr : Runerr '(' IntConst ')' opt_semi",
  1632.     "runerr : Runerr '(' IntConst ',' variable ')' opt_semi",
  1633.     "opt_semi : /* empty */",
  1634.     "opt_semi : ';'",
  1635.     "variable : identifier",
  1636.     "variable : identifier '[' IntConst ']'",
  1637.     "dest_type : Cset",
  1638.     "dest_type : Integer",
  1639.     "dest_type : Real",
  1640.     "dest_type : String",
  1641.     "dest_type : C_Integer",
  1642.     "dest_type : C_Double",
  1643.     "dest_type : C_String",
  1644.     "dest_type : Tmp_string",
  1645.     "dest_type : Tmp_cset",
  1646.     "dest_type : '(' Exact ')' Integer",
  1647.     "dest_type : '(' Exact ')' C_Integer",
  1648.     "i_type_name : i_type_tok",
  1649.     "i_type_tok : Empty_type",
  1650.     "i_type_tok : Null",
  1651.     "i_type_tok : String",
  1652.     "i_type_tok : Cset",
  1653.     "i_type_tok : Integer",
  1654.     "i_type_tok : Real",
  1655.     "i_type_tok : File",
  1656.     "i_type_tok : List",
  1657.     "i_type_tok : Set",
  1658.     "i_type_tok : Table",
  1659.     "i_type_tok : Record",
  1660.     "i_type_tok : Procedure",
  1661.     "i_type_tok : Co_expression",
  1662.     "i_type_tok : Variable",
  1663.     "i_type_tok : Tvsubs",
  1664.     "i_type_tok : Tvtbl",
  1665.     "i_type_tok : Kywdint",
  1666.     "i_type_tok : Kywdpos",
  1667.     "i_type_tok : Kywdsubj",
  1668.     "ret_val : opt_expr",
  1669.     "ret_val : C_Integer assign_expr",
  1670.     "ret_val : C_Double assign_expr",
  1671.     "ret_val : C_String assign_expr",
  1672.     "type_computations : side_effect_lst Return type opt_semi",
  1673.     "type_computations : Return type opt_semi",
  1674.     "type_computations : side_effect_lst",
  1675.     "side_effect_lst : side_effect",
  1676.     "side_effect_lst : side_effect_lst side_effect",
  1677.     "side_effect : Store '[' type ']' '=' type opt_semi",
  1678.     "type : basic_type",
  1679.     "type : type union basic_type",
  1680.     "type : type Intersect basic_type",
  1681.     "basic_type : i_type_name",
  1682.     "basic_type : Type '(' variable ')'",
  1683.     "basic_type : New i_type_name '(' type_lst ')'",
  1684.     "basic_type : Store '[' type ']'",
  1685.     "basic_type : basic_type '.' attrb_name",
  1686.     "basic_type : '(' type ')'",
  1687.     "union : Incr",
  1688.     "type_lst : type",
  1689.     "type_lst : type_lst ',' type",
  1690.     "attrb_name : Lst_elem",
  1691.     "attrb_name : Set_elem",
  1692.     "attrb_name : Key",
  1693.     "attrb_name : Tbl_elem",
  1694.     "attrb_name : Default",
  1695.     "attrb_name : All_fields",
  1696.     "attrb_name : Str_var",
  1697.     "attrb_name : Trpd_tbl",
  1698. };
  1699. #endif /* YYDEBUG */
  1700. #line 1 "/usr/lib/yaccpar"
  1701. /*    @(#)yaccpar 1.10 89/04/04 SMI; from S5R3 1.10    */
  1702.  
  1703. /*
  1704. ** Skeleton parser driver for yacc output
  1705. */
  1706.  
  1707. /*
  1708. ** yacc user known macros and defines
  1709. */
  1710. #define YYERROR        goto yyerrlab
  1711. #define YYACCEPT    { free((char *)yys); free((char *)yyv); return(0); }
  1712. #define YYABORT        { free((char *)yys); free((char *)yyv); return(1); }
  1713. #define YYBACKUP( newtoken, newvalue )\
  1714. {\
  1715.     if ( yychar >= 0 || ( yyr2[ yytmp ] >> 1 ) != 1 )\
  1716.     {\
  1717.         yyerror( "syntax error - cannot backup" );\
  1718.         goto yyerrlab;\
  1719.     }\
  1720.     yychar = newtoken;\
  1721.     yystate = *yyps;\
  1722.     yylval = newvalue;\
  1723.     goto yynewstate;\
  1724. }
  1725. #define YYRECOVERING()    (!!yyerrflag)
  1726. #ifndef YYDEBUG
  1727. #    define YYDEBUG    1    /* make debugging available */
  1728. #endif
  1729.  
  1730. /*
  1731. ** user known globals
  1732. */
  1733. int yydebug;            /* set to 1 to get debugging */
  1734.  
  1735. /*
  1736. ** driver internal defines
  1737. */
  1738. #define YYFLAG        (-1000)
  1739.  
  1740. /*
  1741. ** static variables used by the parser
  1742. */
  1743. static YYSTYPE *yyv;            /* value stack */
  1744. static int *yys;            /* state stack */
  1745.  
  1746. static YYSTYPE *yypv;            /* top of value stack */
  1747. static int *yyps;            /* top of state stack */
  1748.  
  1749. static int yystate;            /* current state */
  1750. static int yytmp;            /* extra var (lasts between blocks) */
  1751.  
  1752. int yynerrs;            /* number of errors */
  1753.  
  1754. int yyerrflag;            /* error recovery flag */
  1755. int yychar;            /* current input token number */
  1756.  
  1757.  
  1758. /*
  1759. ** yyparse - return 0 if worked, 1 if syntax error not recovered from
  1760. */
  1761. int
  1762. yyparse()
  1763. {
  1764.     register YYSTYPE *yypvt;    /* top of value stack for $vars */
  1765.     unsigned yymaxdepth = YYMAXDEPTH;
  1766.  
  1767.     /*
  1768.     ** Initialize externals - yyparse may be called more than once
  1769.     */
  1770.     yyv = (YYSTYPE*)malloc(yymaxdepth*sizeof(YYSTYPE));
  1771.     yys = (int*)malloc(yymaxdepth*sizeof(int));
  1772.     if (!yyv || !yys)
  1773.     {
  1774.         yyerror( "out of memory" );
  1775.         return(1);
  1776.     }
  1777.     yypv = &yyv[-1];
  1778.     yyps = &yys[-1];
  1779.     yystate = 0;
  1780.     yytmp = 0;
  1781.     yynerrs = 0;
  1782.     yyerrflag = 0;
  1783.     yychar = -1;
  1784.  
  1785.     goto yystack;
  1786.     {
  1787.         register YYSTYPE *yy_pv;    /* top of value stack */
  1788.         register int *yy_ps;        /* top of state stack */
  1789.         register int yy_state;        /* current state */
  1790.         register int  yy_n;        /* internal state number info */
  1791.  
  1792.         /*
  1793.         ** get globals into registers.
  1794.         ** branch to here only if YYBACKUP was called.
  1795.         */
  1796.     yynewstate:
  1797.         yy_pv = yypv;
  1798.         yy_ps = yyps;
  1799.         yy_state = yystate;
  1800.         goto yy_newstate;
  1801.  
  1802.         /*
  1803.         ** get globals into registers.
  1804.         ** either we just started, or we just finished a reduction
  1805.         */
  1806.     yystack:
  1807.         yy_pv = yypv;
  1808.         yy_ps = yyps;
  1809.         yy_state = yystate;
  1810.  
  1811.         /*
  1812.         ** top of for (;;) loop while no reductions done
  1813.         */
  1814.     yy_stack:
  1815.         /*
  1816.         ** put a state and value onto the stacks
  1817.         */
  1818. #if YYDEBUG
  1819.         /*
  1820.         ** if debugging, look up token value in list of value vs.
  1821.         ** name pairs.  0 and negative (-1) are special values.
  1822.         ** Note: linear search is used since time is not a real
  1823.         ** consideration while debugging.
  1824.         */
  1825.         if ( yydebug )
  1826.         {
  1827.             register int yy_i;
  1828.  
  1829.             (void)printf( "State %d, token ", yy_state );
  1830.             if ( yychar == 0 )
  1831.                 (void)printf( "end-of-file\n" );
  1832.             else if ( yychar < 0 )
  1833.                 (void)printf( "-none-\n" );
  1834.             else
  1835.             {
  1836.                 for ( yy_i = 0; yytoks[yy_i].t_val >= 0;
  1837.                     yy_i++ )
  1838.                 {
  1839.                     if ( yytoks[yy_i].t_val == yychar )
  1840.                         break;
  1841.                 }
  1842.                 (void)printf( "%s\n", yytoks[yy_i].t_name );
  1843.             }
  1844.         }
  1845. #endif /* YYDEBUG */
  1846.         if ( ++yy_ps >= &yys[ yymaxdepth ] )    /* room on stack? */
  1847.         {
  1848.             /*
  1849.             ** reallocate and recover.  Note that pointers
  1850.             ** have to be reset, or bad things will happen
  1851.             */
  1852.             int yyps_index = (yy_ps - yys);
  1853.             int yypv_index = (yy_pv - yyv);
  1854.             int yypvt_index = (yypvt - yyv);
  1855.             yymaxdepth += YYMAXDEPTH;
  1856.             yyv = (YYSTYPE*)realloc((char*)yyv,
  1857.                 yymaxdepth * sizeof(YYSTYPE));
  1858.             yys = (int*)realloc((char*)yys,
  1859.                 yymaxdepth * sizeof(int));
  1860.             if (!yyv || !yys)
  1861.             {
  1862.                 yyerror( "yacc stack overflow" );
  1863.                 return(1);
  1864.             }
  1865.             yy_ps = yys + yyps_index;
  1866.             yy_pv = yyv + yypv_index;
  1867.             yypvt = yyv + yypvt_index;
  1868.         }
  1869.         *yy_ps = yy_state;
  1870.         *++yy_pv = yyval;
  1871.  
  1872.         /*
  1873.         ** we have a new state - find out what to do
  1874.         */
  1875.     yy_newstate:
  1876.         if ( ( yy_n = yypact[ yy_state ] ) <= YYFLAG )
  1877.             goto yydefault;        /* simple state */
  1878. #if YYDEBUG
  1879.         /*
  1880.         ** if debugging, need to mark whether new token grabbed
  1881.         */
  1882.         yytmp = yychar < 0;
  1883. #endif
  1884.         if ( ( yychar < 0 ) && ( ( yychar = yylex() ) < 0 ) )
  1885.             yychar = 0;        /* reached EOF */
  1886. #if YYDEBUG
  1887.         if ( yydebug && yytmp )
  1888.         {
  1889.             register int yy_i;
  1890.  
  1891.             (void)printf( "Received token " );
  1892.             if ( yychar == 0 )
  1893.                 (void)printf( "end-of-file\n" );
  1894.             else if ( yychar < 0 )
  1895.                 (void)printf( "-none-\n" );
  1896.             else
  1897.             {
  1898.                 for ( yy_i = 0; yytoks[yy_i].t_val >= 0;
  1899.                     yy_i++ )
  1900.                 {
  1901.                     if ( yytoks[yy_i].t_val == yychar )
  1902.                         break;
  1903.                 }
  1904.                 (void)printf( "%s\n", yytoks[yy_i].t_name );
  1905.             }
  1906.         }
  1907. #endif /* YYDEBUG */
  1908.         if ( ( ( yy_n += yychar ) < 0 ) || ( yy_n >= YYLAST ) )
  1909.             goto yydefault;
  1910.         if ( yychk[ yy_n = yyact[ yy_n ] ] == yychar )    /*valid shift*/
  1911.         {
  1912.             yychar = -1;
  1913.             yyval = yylval;
  1914.             yy_state = yy_n;
  1915.             if ( yyerrflag > 0 )
  1916.                 yyerrflag--;
  1917.             goto yy_stack;
  1918.         }
  1919.  
  1920.     yydefault:
  1921.         if ( ( yy_n = yydef[ yy_state ] ) == -2 )
  1922.         {
  1923. #if YYDEBUG
  1924.             yytmp = yychar < 0;
  1925. #endif
  1926.             if ( ( yychar < 0 ) && ( ( yychar = yylex() ) < 0 ) )
  1927.                 yychar = 0;        /* reached EOF */
  1928. #if YYDEBUG
  1929.             if ( yydebug && yytmp )
  1930.             {
  1931.                 register int yy_i;
  1932.  
  1933.                 (void)printf( "Received token " );
  1934.                 if ( yychar == 0 )
  1935.                     (void)printf( "end-of-file\n" );
  1936.                 else if ( yychar < 0 )
  1937.                     (void)printf( "-none-\n" );
  1938.                 else
  1939.                 {
  1940.                     for ( yy_i = 0;
  1941.                         yytoks[yy_i].t_val >= 0;
  1942.                         yy_i++ )
  1943.                     {
  1944.                         if ( yytoks[yy_i].t_val
  1945.                             == yychar )
  1946.                         {
  1947.                             break;
  1948.                         }
  1949.                     }
  1950.                     (void)printf( "%s\n", yytoks[yy_i].t_name );
  1951.                 }
  1952.             }
  1953. #endif /* YYDEBUG */
  1954.             /*
  1955.             ** look through exception table
  1956.             */
  1957.             {
  1958.                 register int *yyxi = yyexca;
  1959.  
  1960.                 while ( ( *yyxi != -1 ) ||
  1961.                     ( yyxi[1] != yy_state ) )
  1962.                 {
  1963.                     yyxi += 2;
  1964.                 }
  1965.                 while ( ( *(yyxi += 2) >= 0 ) &&
  1966.                     ( *yyxi != yychar ) )
  1967.                     ;
  1968.                 if ( ( yy_n = yyxi[1] ) < 0 )
  1969.                     YYACCEPT;
  1970.             }
  1971.         }
  1972.  
  1973.         /*
  1974.         ** check for syntax error
  1975.         */
  1976.         if ( yy_n == 0 )    /* have an error */
  1977.         {
  1978.             /* no worry about speed here! */
  1979.             switch ( yyerrflag )
  1980.             {
  1981.             case 0:        /* new error */
  1982.                 yyerror( "syntax error" );
  1983.                 goto skip_init;
  1984.             yyerrlab:
  1985.                 /*
  1986.                 ** get globals into registers.
  1987.                 ** we have a user generated syntax type error
  1988.                 */
  1989.                 yy_pv = yypv;
  1990.                 yy_ps = yyps;
  1991.                 yy_state = yystate;
  1992.                 yynerrs++;
  1993.             skip_init:
  1994.             case 1:
  1995.             case 2:        /* incompletely recovered error */
  1996.                     /* try again... */
  1997.                 yyerrflag = 3;
  1998.                 /*
  1999.                 ** find state where "error" is a legal
  2000.                 ** shift action
  2001.                 */
  2002.                 while ( yy_ps >= yys )
  2003.                 {
  2004.                     yy_n = yypact[ *yy_ps ] + YYERRCODE;
  2005.                     if ( yy_n >= 0 && yy_n < YYLAST &&
  2006.                         yychk[yyact[yy_n]] == YYERRCODE)                    {
  2007.                         /*
  2008.                         ** simulate shift of "error"
  2009.                         */
  2010.                         yy_state = yyact[ yy_n ];
  2011.                         goto yy_stack;
  2012.                     }
  2013.                     /*
  2014.                     ** current state has no shift on
  2015.                     ** "error", pop stack
  2016.                     */
  2017. #if YYDEBUG
  2018. #    define _POP_ "Error recovery pops state %d, uncovers state %d\n"
  2019.                     if ( yydebug )
  2020.                         (void)printf( _POP_, *yy_ps,
  2021.                             yy_ps[-1] );
  2022. #    undef _POP_
  2023. #endif
  2024.                     yy_ps--;
  2025.                     yy_pv--;
  2026.                 }
  2027.                 /*
  2028.                 ** there is no state on stack with "error" as
  2029.                 ** a valid shift.  give up.
  2030.                 */
  2031.                 YYABORT;
  2032.             case 3:        /* no shift yet; eat a token */
  2033. #if YYDEBUG
  2034.                 /*
  2035.                 ** if debugging, look up token in list of
  2036.                 ** pairs.  0 and negative shouldn't occur,
  2037.                 ** but since timing doesn't matter when
  2038.                 ** debugging, it doesn't hurt to leave the
  2039.                 ** tests here.
  2040.                 */
  2041.                 if ( yydebug )
  2042.                 {
  2043.                     register int yy_i;
  2044.  
  2045.                     (void)printf( "Error recovery discards " );
  2046.                     if ( yychar == 0 )
  2047.                         (void)printf( "token end-of-file\n" );
  2048.                     else if ( yychar < 0 )
  2049.                         (void)printf( "token -none-\n" );
  2050.                     else
  2051.                     {
  2052.                         for ( yy_i = 0;
  2053.                             yytoks[yy_i].t_val >= 0;
  2054.                             yy_i++ )
  2055.                         {
  2056.                             if ( yytoks[yy_i].t_val
  2057.                                 == yychar )
  2058.                             {
  2059.                                 break;
  2060.                             }
  2061.                         }
  2062.                         (void)printf( "token %s\n",
  2063.                             yytoks[yy_i].t_name );
  2064.                     }
  2065.                 }
  2066. #endif /* YYDEBUG */
  2067.                 if ( yychar == 0 )    /* reached EOF. quit */
  2068.                     YYABORT;
  2069.                 yychar = -1;
  2070.                 goto yy_newstate;
  2071.             }
  2072.         }/* end if ( yy_n == 0 ) */
  2073.         /*
  2074.         ** reduction by production yy_n
  2075.         ** put stack tops, etc. so things right after switch
  2076.         */
  2077. #if YYDEBUG
  2078.         /*
  2079.         ** if debugging, print the string that is the user's
  2080.         ** specification of the reduction which is just about
  2081.         ** to be done.
  2082.         */
  2083.         if ( yydebug )
  2084.             (void)printf( "Reduce by (%d) \"%s\"\n",
  2085.                 yy_n, yyreds[ yy_n ] );
  2086. #endif
  2087.         yytmp = yy_n;            /* value to switch over */
  2088.         yypvt = yy_pv;            /* $vars top of value stack */
  2089.         /*
  2090.         ** Look in goto table for next state
  2091.         ** Sorry about using yy_state here as temporary
  2092.         ** register variable, but why not, if it works...
  2093.         ** If yyr2[ yy_n ] doesn't have the low order bit
  2094.         ** set, then there is no action to be done for
  2095.         ** this reduction.  So, no saving & unsaving of
  2096.         ** registers done.  The only difference between the
  2097.         ** code just after the if and the body of the if is
  2098.         ** the goto yy_stack in the body.  This way the test
  2099.         ** can be made before the choice of what to do is needed.
  2100.         */
  2101.         {
  2102.             /* length of production doubled with extra bit */
  2103.             register int yy_len = yyr2[ yy_n ];
  2104.  
  2105.             if ( !( yy_len & 01 ) )
  2106.             {
  2107.                 yy_len >>= 1;
  2108.                 yyval = ( yy_pv -= yy_len )[1];    /* $$ = $1 */
  2109.                 yy_state = yypgo[ yy_n = yyr1[ yy_n ] ] +
  2110.                     *( yy_ps -= yy_len ) + 1;
  2111.                 if ( yy_state >= YYLAST ||
  2112.                     yychk[ yy_state =
  2113.                     yyact[ yy_state ] ] != -yy_n )
  2114.                 {
  2115.                     yy_state = yyact[ yypgo[ yy_n ] ];
  2116.                 }
  2117.                 goto yy_stack;
  2118.             }
  2119.             yy_len >>= 1;
  2120.             yyval = ( yy_pv -= yy_len )[1];    /* $$ = $1 */
  2121.             yy_state = yypgo[ yy_n = yyr1[ yy_n ] ] +
  2122.                 *( yy_ps -= yy_len ) + 1;
  2123.             if ( yy_state >= YYLAST ||
  2124.                 yychk[ yy_state = yyact[ yy_state ] ] != -yy_n )
  2125.             {
  2126.                 yy_state = yyact[ yypgo[ yy_n ] ];
  2127.             }
  2128.         }
  2129.                     /* save until reenter driver code */
  2130.         yystate = yy_state;
  2131.         yyps = yy_ps;
  2132.         yypv = yy_pv;
  2133.     }
  2134.     /*
  2135.     ** code supplied by user is placed in this switch
  2136.     */
  2137.     switch( yytmp )
  2138.     {
  2139.         
  2140. case 1:
  2141. # line 86 "rttgram.y"
  2142. {yyval.n = var_node(yypvt[-0].t);} break;
  2143. case 2:
  2144. # line 87 "rttgram.y"
  2145. {yyval.n = node0(PrimryNd, yypvt[-0].t);} break;
  2146. case 3:
  2147. # line 88 "rttgram.y"
  2148. {yyval.n = node0(PrimryNd, yypvt[-0].t);} break;
  2149. case 4:
  2150. # line 89 "rttgram.y"
  2151. {yyval.n = node0(PrimryNd, yypvt[-0].t);} break;
  2152. case 5:
  2153. # line 90 "rttgram.y"
  2154. {yyval.n = node0(PrimryNd, yypvt[-0].t);} break;
  2155. case 6:
  2156. # line 91 "rttgram.y"
  2157. {yyval.n = node0(PrimryNd, yypvt[-0].t);} break;
  2158. case 7:
  2159. # line 92 "rttgram.y"
  2160. {yyval.n = node0(PrimryNd, yypvt[-0].t);} break;
  2161. case 8:
  2162. # line 93 "rttgram.y"
  2163. {yyval.n = node0(PrimryNd, yypvt[-0].t);} break;
  2164. case 9:
  2165. # line 94 "rttgram.y"
  2166. {yyval.n = node0(PrimryNd, yypvt[-0].t);} break;
  2167. case 10:
  2168. # line 95 "rttgram.y"
  2169. {yyval.n = node0(PrimryNd, yypvt[-0].t);} break;
  2170. case 11:
  2171. # line 96 "rttgram.y"
  2172. {yyval.n = node0(PrimryNd, yypvt[-0].t);} break;
  2173. case 12:
  2174. # line 97 "rttgram.y"
  2175. {yyval.n = node0(PrimryNd, yypvt[-0].t);} break;
  2176. case 13:
  2177. # line 98 "rttgram.y"
  2178. {yyval.n = node1(PrefxNd, yypvt[-2].t, yypvt[-1].n); free_t(yypvt[-0].t);} break;
  2179. case 15:
  2180. # line 103 "rttgram.y"
  2181. {yyval.n = node2(BinryNd, yypvt[-2].t, yypvt[-3].n, yypvt[-1].n);
  2182.                                         free_t(yypvt[-0].t);} break;
  2183. case 16:
  2184. # line 105 "rttgram.y"
  2185. {yyval.n = node2(BinryNd, yypvt[-0].t, yypvt[-2].n, NULL);
  2186.                                         free_t(yypvt[-1].t);} break;
  2187. case 17:
  2188. # line 107 "rttgram.y"
  2189. {yyval.n = node2(BinryNd, yypvt[-0].t, yypvt[-3].n, yypvt[-1].n);
  2190.                                         free_t(yypvt[-2].t);} break;
  2191. case 18:
  2192. # line 109 "rttgram.y"
  2193. {yyval.n = node2(BinryNd, yypvt[-1].t, yypvt[-2].n, yypvt[-0].n);} break;
  2194. case 19:
  2195. # line 110 "rttgram.y"
  2196. {yyval.n = node2(BinryNd, yypvt[-1].t, yypvt[-2].n, yypvt[-0].n);} break;
  2197. case 20:
  2198. # line 111 "rttgram.y"
  2199. {yyval.n = node1(PstfxNd, yypvt[-0].t, yypvt[-1].n);} break;
  2200. case 21:
  2201. # line 112 "rttgram.y"
  2202. {yyval.n = node1(PstfxNd, yypvt[-0].t, yypvt[-1].n);} break;
  2203. case 22:
  2204. # line 114 "rttgram.y"
  2205. {yyval.n = node2(BinryNd, yypvt[-5].t, yypvt[-3].n, yypvt[-1].n); free_t(yypvt[-4].t); free_t(yypvt[-2].t); free_t(yypvt[-0].t);} break;
  2206. case 23:
  2207. # line 116 "rttgram.y"
  2208. {yyval.n = node3(TrnryNd, yypvt[-7].t, yypvt[-5].n, yypvt[-3].n, yypvt[-1].n), free_t(yypvt[-6].t); free_t(yypvt[-4].t); free_t(yypvt[-2].t);
  2209.        free_t(yypvt[-0].t);} break;
  2210. case 24:
  2211. # line 119 "rttgram.y"
  2212. {yyval.n = node4(QuadNd, yypvt[-9].t, yypvt[-7].n, yypvt[-5].n, yypvt[-3].n, yypvt[-1].n), free_t(yypvt[-8].t); free_t(yypvt[-6].t);
  2213.        free_t(yypvt[-4].t); free_t(yypvt[-2].t); free_t(yypvt[-0].t);} break;
  2214. case 26:
  2215. # line 125 "rttgram.y"
  2216. {yyval.n = node2(CommaNd, yypvt[-1].t, yypvt[-2].n, yypvt[-0].n);} break;
  2217. case 28:
  2218. # line 130 "rttgram.y"
  2219. {yyval.n = node1(PrefxNd, yypvt[-1].t, yypvt[-0].n);} break;
  2220. case 29:
  2221. # line 131 "rttgram.y"
  2222. {yyval.n = node1(PrefxNd, yypvt[-1].t, yypvt[-0].n);} break;
  2223. case 30:
  2224. # line 132 "rttgram.y"
  2225. {yyval.n = node1(PrefxNd, yypvt[-1].t, yypvt[-0].n);} break;
  2226. case 31:
  2227. # line 133 "rttgram.y"
  2228. {yyval.n = node1(PrefxNd, yypvt[-1].t, yypvt[-0].n);} break;
  2229. case 32:
  2230. # line 134 "rttgram.y"
  2231. {yyval.n = node1(PrefxNd, yypvt[-3].t, yypvt[-1].n);
  2232.                                free_t(yypvt[-2].t); free_t(yypvt[-0].t);} break;
  2233. case 40:
  2234. # line 149 "rttgram.y"
  2235. {yyval.n = node2(BinryNd, yypvt[-3].t, yypvt[-2].n, yypvt[-0].n); free_t(yypvt[-1].t);} break;
  2236. case 42:
  2237. # line 154 "rttgram.y"
  2238. {yyval.n = node2(BinryNd, yypvt[-1].t, yypvt[-2].n, yypvt[-0].n);} break;
  2239. case 43:
  2240. # line 155 "rttgram.y"
  2241. {yyval.n = node2(BinryNd, yypvt[-1].t, yypvt[-2].n, yypvt[-0].n);} break;
  2242. case 44:
  2243. # line 156 "rttgram.y"
  2244. {yyval.n = node2(BinryNd, yypvt[-1].t, yypvt[-2].n, yypvt[-0].n);} break;
  2245. case 46:
  2246. # line 161 "rttgram.y"
  2247. {yyval.n = node2(BinryNd, yypvt[-1].t, yypvt[-2].n, yypvt[-0].n);} break;
  2248. case 47:
  2249. # line 162 "rttgram.y"
  2250. {yyval.n = node2(BinryNd, yypvt[-1].t, yypvt[-2].n, yypvt[-0].n);} break;
  2251. case 49:
  2252. # line 167 "rttgram.y"
  2253. {yyval.n = node2(BinryNd, yypvt[-1].t, yypvt[-2].n, yypvt[-0].n);} break;
  2254. case 50:
  2255. # line 168 "rttgram.y"
  2256. {yyval.n = node2(BinryNd, yypvt[-1].t, yypvt[-2].n, yypvt[-0].n);} break;
  2257. case 52:
  2258. # line 173 "rttgram.y"
  2259. {yyval.n = node2(BinryNd, yypvt[-1].t, yypvt[-2].n, yypvt[-0].n);} break;
  2260. case 53:
  2261. # line 174 "rttgram.y"
  2262. {yyval.n = node2(BinryNd, yypvt[-1].t, yypvt[-2].n, yypvt[-0].n);} break;
  2263. case 54:
  2264. # line 175 "rttgram.y"
  2265. {yyval.n = node2(BinryNd, yypvt[-1].t, yypvt[-2].n, yypvt[-0].n);} break;
  2266. case 55:
  2267. # line 176 "rttgram.y"
  2268. {yyval.n = node2(BinryNd, yypvt[-1].t, yypvt[-2].n, yypvt[-0].n);} break;
  2269. case 57:
  2270. # line 181 "rttgram.y"
  2271. {yyval.n = node2(BinryNd, yypvt[-1].t, yypvt[-2].n, yypvt[-0].n);} break;
  2272. case 58:
  2273. # line 182 "rttgram.y"
  2274. {yyval.n = node2(BinryNd, yypvt[-1].t, yypvt[-2].n, yypvt[-0].n);} break;
  2275. case 60:
  2276. # line 187 "rttgram.y"
  2277. {yyval.n = node2(BinryNd, yypvt[-1].t, yypvt[-2].n, yypvt[-0].n);} break;
  2278. case 62:
  2279. # line 192 "rttgram.y"
  2280. {yyval.n = node2(BinryNd, yypvt[-1].t, yypvt[-2].n, yypvt[-0].n);} break;
  2281. case 64:
  2282. # line 197 "rttgram.y"
  2283. {yyval.n = node2(BinryNd, yypvt[-1].t, yypvt[-2].n, yypvt[-0].n);} break;
  2284. case 66:
  2285. # line 202 "rttgram.y"
  2286. {yyval.n = node2(BinryNd, yypvt[-1].t, yypvt[-2].n, yypvt[-0].n);} break;
  2287. case 68:
  2288. # line 207 "rttgram.y"
  2289. {yyval.n = node2(BinryNd, yypvt[-1].t, yypvt[-2].n, yypvt[-0].n);} break;
  2290. case 70:
  2291. # line 213 "rttgram.y"
  2292. {yyval.n = node3(TrnryNd, yypvt[-3].t, yypvt[-4].n, yypvt[-2].n, yypvt[-0].n);
  2293.                                           free_t(yypvt[-1].t);} break;
  2294. case 72:
  2295. # line 219 "rttgram.y"
  2296. {yyval.n = node2(BinryNd, yypvt[-1].t, yypvt[-2].n, yypvt[-0].n);} break;
  2297. case 85:
  2298. # line 238 "rttgram.y"
  2299. {yyval.n = node2(BinryNd, yypvt[-1].t, yypvt[-2].n, yypvt[-0].n);} break;
  2300. case 86:
  2301. # line 242 "rttgram.y"
  2302. {yyval.n = NULL;} break;
  2303. case 89:
  2304. # line 251 "rttgram.y"
  2305. {yyval.n = NULL;} break;
  2306. case 91:
  2307. # line 256 "rttgram.y"
  2308. {yyval.n = node2(BinryNd, yypvt[-0].t, yypvt[-1].n, NULL);
  2309.                                              dcl_stk->kind_dcl = OtherDcl;} break;
  2310. case 92:
  2311. # line 258 "rttgram.y"
  2312. {yyval.n = node2(BinryNd, yypvt[-0].t, yypvt[-2].n, yypvt[-1].n);
  2313.                                              dcl_stk->kind_dcl = OtherDcl;} break;
  2314. case 93:
  2315. # line 261 "rttgram.y"
  2316. {yyval.n = node2(BinryNd, yypvt[-0].t, yypvt[-2].n, yypvt[-1].n);
  2317.                                              dcl_stk->kind_dcl = OtherDcl;} break;
  2318. case 95:
  2319. # line 267 "rttgram.y"
  2320. {yyval.n = node2(LstNd, NULL, yypvt[-1].n, yypvt[-0].n);} break;
  2321. case 98:
  2322. # line 276 "rttgram.y"
  2323. {yyval.n = node0(PrimryNd, yypvt[-0].t);} break;
  2324. case 99:
  2325. # line 278 "rttgram.y"
  2326. {yyval.n = node2(LstNd, NULL, node0(PrimryNd, yypvt[-1].t), yypvt[-0].n);} break;
  2327. case 102:
  2328. # line 284 "rttgram.y"
  2329. {yyval.n = node2(LstNd, NULL, yypvt[-1].n, yypvt[-0].n);} break;
  2330. case 103:
  2331. # line 285 "rttgram.y"
  2332. {yyval.n = node2(LstNd, NULL, yypvt[-1].n, yypvt[-0].n);} break;
  2333. case 104:
  2334. # line 286 "rttgram.y"
  2335. {yyval.n = node2(LstNd, NULL, yypvt[-1].n, yypvt[-0].n);} break;
  2336. case 107:
  2337. # line 292 "rttgram.y"
  2338. {yyval.n = node2(LstNd, NULL, yypvt[-1].n, yypvt[-0].n);} break;
  2339. case 108:
  2340. # line 293 "rttgram.y"
  2341. {yyval.n = node2(LstNd, NULL, yypvt[-1].n, yypvt[-0].n);} break;
  2342. case 110:
  2343. # line 298 "rttgram.y"
  2344. {yyval.n = node2(CommaNd, yypvt[-1].t, yypvt[-2].n, yypvt[-0].n);} break;
  2345. case 112:
  2346. # line 304 "rttgram.y"
  2347. {yyval.n = node2(CommaNd, yypvt[-1].t, yypvt[-2].n, yypvt[-0].n);} break;
  2348. case 113:
  2349. # line 308 "rttgram.y"
  2350. {yyval.n = yypvt[-0].n; id_def(yypvt[-0].n, NULL);} break;
  2351. case 114:
  2352. # line 309 "rttgram.y"
  2353. {yyval.n = node2(BinryNd, yypvt[-1].t, yypvt[-2].n, yypvt[-0].n); id_def(yypvt[-2].n, yypvt[-0].n);} break;
  2354. case 115:
  2355. # line 313 "rttgram.y"
  2356. {yyval.n = yypvt[-0].n; id_def(yypvt[-0].n, NULL);} break;
  2357. case 116:
  2358. # line 315 "rttgram.y"
  2359. {yyval.n = node2(BinryNd, yypvt[-1].t, yypvt[-2].n, yypvt[-0].n); id_def(yypvt[-2].n, yypvt[-0].n);} break;
  2360. case 117:
  2361. # line 319 "rttgram.y"
  2362. {yyval.n = node0(PrimryNd, yypvt[-0].t); dcl_stk->kind_dcl = IsTypedef;} break;
  2363. case 118:
  2364. # line 320 "rttgram.y"
  2365. {yyval.n = node0(PrimryNd, yypvt[-0].t);} break;
  2366. case 119:
  2367. # line 321 "rttgram.y"
  2368. {yyval.n = node0(PrimryNd, yypvt[-0].t);} break;
  2369. case 120:
  2370. # line 322 "rttgram.y"
  2371. {yyval.n = node0(PrimryNd, yypvt[-0].t);} break;
  2372. case 121:
  2373. # line 323 "rttgram.y"
  2374. {yyval.n = node0(PrimryNd, yypvt[-0].t);} break;
  2375. case 123:
  2376. # line 328 "rttgram.y"
  2377. {yyval.n = node0(PrimryNd, yypvt[-0].t);} break;
  2378. case 124:
  2379. # line 332 "rttgram.y"
  2380. {yyval.n = node0(PrimryNd, yypvt[-0].t);} break;
  2381. case 125:
  2382. # line 333 "rttgram.y"
  2383. {yyval.n = node0(PrimryNd, yypvt[-0].t);} break;
  2384. case 126:
  2385. # line 334 "rttgram.y"
  2386. {yyval.n = node0(PrimryNd, yypvt[-0].t);} break;
  2387. case 127:
  2388. # line 335 "rttgram.y"
  2389. {yyval.n = node0(PrimryNd, yypvt[-0].t);} break;
  2390. case 128:
  2391. # line 336 "rttgram.y"
  2392. {yyval.n = node0(PrimryNd, yypvt[-0].t);} break;
  2393. case 129:
  2394. # line 337 "rttgram.y"
  2395. {yyval.n = node0(PrimryNd, yypvt[-0].t);} break;
  2396. case 130:
  2397. # line 338 "rttgram.y"
  2398. {yyval.n = node0(PrimryNd, yypvt[-0].t);} break;
  2399. case 131:
  2400. # line 339 "rttgram.y"
  2401. {yyval.n = node0(PrimryNd, yypvt[-0].t);} break;
  2402. case 132:
  2403. # line 340 "rttgram.y"
  2404. {yyval.n = node0(PrimryNd, yypvt[-0].t);} break;
  2405. case 135:
  2406. # line 347 "rttgram.y"
  2407. {yyval.n = node2(BinryNd, yypvt[-4].t, yypvt[-3].n, yypvt[-1].n);
  2408.                                              free_t(yypvt[-2].t); free_t(yypvt[-0].t);} break;
  2409. case 136:
  2410. # line 350 "rttgram.y"
  2411. {yyval.n = node2(BinryNd, yypvt[-3].t, NULL, yypvt[-1].n);
  2412.                                              free_t(yypvt[-2].t); free_t(yypvt[-0].t);} break;
  2413. case 137:
  2414. # line 352 "rttgram.y"
  2415. {yyval.n = node2(BinryNd, yypvt[-1].t, yypvt[-0].n, NULL);} break;
  2416. case 141:
  2417. # line 362 "rttgram.y"
  2418. {yyval.n = node2(LstNd, NULL, yypvt[-1].n, yypvt[-0].n);} break;
  2419. case 142:
  2420. # line 367 "rttgram.y"
  2421. {yyval.n = node2(BinryNd, yypvt[-0].t, yypvt[-2].n, yypvt[-1].n);} break;
  2422. case 143:
  2423. # line 368 "rttgram.y"
  2424. {yyval.n = node2(BinryNd, yypvt[-0].t, yypvt[-2].n, yypvt[-1].n);} break;
  2425. case 145:
  2426. # line 373 "rttgram.y"
  2427. {yyval.n = node2(LstNd, NULL, yypvt[-1].n, yypvt[-0].n);} break;
  2428. case 146:
  2429. # line 377 "rttgram.y"
  2430. {yyval.n = node0(PrimryNd, yypvt[-0].t);} break;
  2431. case 147:
  2432. # line 378 "rttgram.y"
  2433. {yyval.n = node2(LstNd, NULL, node0(PrimryNd, yypvt[-1].t), yypvt[-0].n);} break;
  2434. case 150:
  2435. # line 384 "rttgram.y"
  2436. {yyval.n = node2(LstNd, NULL, yypvt[-1].n, yypvt[-0].n);} break;
  2437. case 151:
  2438. # line 385 "rttgram.y"
  2439. {yyval.n = node2(LstNd, NULL, yypvt[-1].n, yypvt[-0].n);} break;
  2440. case 153:
  2441. # line 389 "rttgram.y"
  2442. {yyval.n = node2(CommaNd, yypvt[-1].t, yypvt[-2].n, yypvt[-0].n);} break;
  2443. case 154:
  2444. # line 393 "rttgram.y"
  2445. {yyval.n = node2(StrDclNd, NULL, yypvt[-0].n, NULL);
  2446.                                if (dcl_stk->parms_done) pop_cntxt();} break;
  2447. case 155:
  2448. # line 395 "rttgram.y"
  2449. {yyval.n = node2(StrDclNd, yypvt[-1].t, NULL, yypvt[-0].n);} break;
  2450. case 156:
  2451. # line 396 "rttgram.y"
  2452. {if (dcl_stk->parms_done) pop_cntxt();} break;
  2453. case 157:
  2454. # line 397 "rttgram.y"
  2455. {yyval.n = node2(StrDclNd, yypvt[-2].t, yypvt[-3].n, yypvt[-0].n);} break;
  2456. case 159:
  2457. # line 403 "rttgram.y"
  2458. {yyval.n = node2(CommaNd, yypvt[-1].t, yypvt[-2].n, yypvt[-0].n);} break;
  2459. case 160:
  2460. # line 407 "rttgram.y"
  2461. {yyval.n = node2(StrDclNd, NULL, yypvt[-0].n, NULL);
  2462.                                       if (dcl_stk->parms_done) pop_cntxt();} break;
  2463. case 161:
  2464. # line 409 "rttgram.y"
  2465. {yyval.n = node2(StrDclNd, yypvt[-1].t, NULL, yypvt[-0].n);} break;
  2466. case 162:
  2467. # line 410 "rttgram.y"
  2468. {if (dcl_stk->parms_done) pop_cntxt();} break;
  2469. case 163:
  2470. # line 411 "rttgram.y"
  2471. {yyval.n = node2(StrDclNd, yypvt[-2].t, yypvt[-3].n, yypvt[-0].n);} break;
  2472. case 164:
  2473. # line 415 "rttgram.y"
  2474. {push_cntxt(0);} break;
  2475. case 165:
  2476. # line 416 "rttgram.y"
  2477. {yyval.n = node2(BinryNd, yypvt[-4].t, NULL, yypvt[-1].n); pop_cntxt(); free_t(yypvt[-2].t); free_t(yypvt[-0].t);} break;
  2478. case 166:
  2479. # line 417 "rttgram.y"
  2480. {push_cntxt(0);} break;
  2481. case 167:
  2482. # line 418 "rttgram.y"
  2483. {yyval.n = node2(BinryNd, yypvt[-5].t, yypvt[-4].n,  yypvt[-1].n); pop_cntxt(); free_t(yypvt[-2].t); free_t(yypvt[-0].t);} break;
  2484. case 168:
  2485. # line 419 "rttgram.y"
  2486. {yyval.n = node2(BinryNd, yypvt[-1].t, yypvt[-0].n,  NULL);} break;
  2487. case 170:
  2488. # line 424 "rttgram.y"
  2489. {yyval.n = node2(CommaNd, yypvt[-1].t, yypvt[-2].n, yypvt[-0].n);} break;
  2490. case 171:
  2491. # line 428 "rttgram.y"
  2492. {yyval.n = yypvt[-0].n; id_def(yypvt[-0].n, NULL);} break;
  2493. case 172:
  2494. # line 430 "rttgram.y"
  2495. {yyval.n = node2(BinryNd, yypvt[-1].t, yypvt[-2].n, yypvt[-0].n); id_def(yypvt[-2].n, yypvt[-0].n);} break;
  2496. case 173:
  2497. # line 434 "rttgram.y"
  2498. {yyval.n = node0(PrimryNd, yypvt[-0].t);} break;
  2499. case 174:
  2500. # line 435 "rttgram.y"
  2501. {yyval.n = node0(PrimryNd, yypvt[-0].t);} break;
  2502. case 175:
  2503. # line 440 "rttgram.y"
  2504. {yyval.n = node2(ConCatNd, NULL, yypvt[-1].n, yypvt[-0].n);} break;
  2505. case 176:
  2506. # line 444 "rttgram.y"
  2507. {yyval.n = node2(ConCatNd, NULL, yypvt[-1].n, yypvt[-0].n);} break;
  2508. case 178:
  2509. # line 449 "rttgram.y"
  2510. {yyval.n = node1(PrefxNd, yypvt[-2].t, yypvt[-1].n);
  2511.                                                free_t(yypvt[-0].t);} break;
  2512. case 179:
  2513. # line 451 "rttgram.y"
  2514. {yyval.n = node2(BinryNd, yypvt[-2].t, yypvt[-3].n, yypvt[-1].n);
  2515.                                                free_t(yypvt[-0].t);} break;
  2516. case 180:
  2517. # line 453 "rttgram.y"
  2518. {push_cntxt(1);} break;
  2519. case 181:
  2520. # line 454 "rttgram.y"
  2521. {yyval.n = node2(BinryNd, yypvt[-0].t, yypvt[-4].n, yypvt[-1].n);
  2522.                                                if (dcl_stk->nest_lvl == 2)
  2523.                                                   dcl_stk->parms_done = 1;
  2524.                                                 else
  2525.                                                   pop_cntxt();
  2526.                                                free_t(yypvt[-3].t);} break;
  2527. case 182:
  2528. # line 463 "rttgram.y"
  2529. {yyval.n = node0(PrimryNd, yypvt[-0].t);} break;
  2530. case 183:
  2531. # line 464 "rttgram.y"
  2532. {yyval.n = node1(PrefxNd, yypvt[-2].t, yypvt[-1].n);
  2533.                                                free_t(yypvt[-0].t);} break;
  2534. case 184:
  2535. # line 467 "rttgram.y"
  2536. {yyval.n = node2(BinryNd, yypvt[-2].t, yypvt[-3].n, yypvt[-1].n);
  2537.                                                free_t(yypvt[-0].t);} break;
  2538. case 185:
  2539. # line 469 "rttgram.y"
  2540. {push_cntxt(1);} break;
  2541. case 186:
  2542. # line 470 "rttgram.y"
  2543. {yyval.n = node2(BinryNd, yypvt[-0].t, yypvt[-4].n, yypvt[-1].n);
  2544.                                                if (dcl_stk->nest_lvl == 2)
  2545.                                                   dcl_stk->parms_done = 1;
  2546.                                                 else
  2547.                                                   pop_cntxt();
  2548.                                                free_t(yypvt[-3].t);} break;
  2549. case 189:
  2550. # line 484 "rttgram.y"
  2551. {yyval.n = node0(PrimryNd, yypvt[-0].t);} break;
  2552. case 190:
  2553. # line 485 "rttgram.y"
  2554. {yyval.n = node1(PreSpcNd, yypvt[-1].t, yypvt[-0].n);} break;
  2555. case 191:
  2556. # line 486 "rttgram.y"
  2557. {yyval.n = node1(PrefxNd, yypvt[-1].t, yypvt[-0].n);} break;
  2558. case 192:
  2559. # line 487 "rttgram.y"
  2560. {yyval.n = node1(PrefxNd, yypvt[-2].t, node2(LstNd, NULL, yypvt[-1].n,yypvt[-0].n));} break;
  2561. case 193:
  2562. # line 491 "rttgram.y"
  2563. {yyval.n = NULL;} break;
  2564. case 196:
  2565. # line 497 "rttgram.y"
  2566. {yyval.n = node2(LstNd, NULL, yypvt[-1].n, yypvt[-0].n);} break;
  2567. case 198:
  2568. # line 502 "rttgram.y"
  2569. {yyval.n = node2(CommaNd, yypvt[-1].t, yypvt[-2].n, node0(PrimryNd, yypvt[-0].t));} break;
  2570. case 199:
  2571. # line 506 "rttgram.y"
  2572. {yyval.n = NULL;} break;
  2573. case 202:
  2574. # line 512 "rttgram.y"
  2575. {yyval.n = node2(CommaNd, yypvt[-1].t, yypvt[-2].n, yypvt[-0].n);} break;
  2576. case 203:
  2577. # line 516 "rttgram.y"
  2578. {yyval.n = node2(LstNd, NULL, yypvt[-1].n, yypvt[-0].n);
  2579.                                     id_def(yypvt[-0].n, NULL);} break;
  2580. case 205:
  2581. # line 519 "rttgram.y"
  2582. {yyval.n = node2(LstNd, NULL, yypvt[-1].n, yypvt[-0].n);} break;
  2583. case 206:
  2584. # line 523 "rttgram.y"
  2585. {yyval.n = node0(PrimryNd, yypvt[-0].t);} break;
  2586. case 207:
  2587. # line 524 "rttgram.y"
  2588. {yyval.n = node2(CommaNd, yypvt[-1].t, yypvt[-2].n, node0(PrimryNd,yypvt[-0].t));} break;
  2589. case 210:
  2590. # line 530 "rttgram.y"
  2591. {yyval.n = node2(LstNd, NULL, yypvt[-1].n, yypvt[-0].n);} break;
  2592. case 211:
  2593. # line 531 "rttgram.y"
  2594. {yyval.n = node2(LstNd, NULL, yypvt[-1].n, yypvt[-0].n);} break;
  2595. case 213:
  2596. # line 536 "rttgram.y"
  2597. {yyval.n = node2(LstNd, NULL, yypvt[-1].n, yypvt[-0].n);} break;
  2598. case 215:
  2599. # line 541 "rttgram.y"
  2600. {yyval.n = node2(ConCatNd, NULL, yypvt[-1].n, yypvt[-0].n);} break;
  2601. case 216:
  2602. # line 545 "rttgram.y"
  2603. {yyval.n = node1(PrefxNd, yypvt[-2].t, yypvt[-1].n);
  2604.                                              free_t(yypvt[-0].t);} break;
  2605. case 217:
  2606. # line 548 "rttgram.y"
  2607. {yyval.n = node2(BinryNd, yypvt[-2].t, NULL, yypvt[-1].n);
  2608.                                              free_t(yypvt[-0].t);} break;
  2609. case 218:
  2610. # line 551 "rttgram.y"
  2611. {yyval.n = node2(BinryNd, yypvt[-2].t, yypvt[-3].n, yypvt[-1].n);
  2612.                                              free_t(yypvt[-0].t);} break;
  2613. case 219:
  2614. # line 553 "rttgram.y"
  2615. {push_cntxt(1);} break;
  2616. case 220:
  2617. # line 554 "rttgram.y"
  2618. {yyval.n = node2(BinryNd, yypvt[-0].t, NULL, yypvt[-1].n);
  2619.                                              pop_cntxt();
  2620.                                              free_t(yypvt[-3].t);} break;
  2621. case 221:
  2622. # line 557 "rttgram.y"
  2623. {push_cntxt(1);} break;
  2624. case 222:
  2625. # line 558 "rttgram.y"
  2626. {yyval.n = node2(BinryNd, yypvt[-0].t, yypvt[-4].n, yypvt[-1].n);
  2627.                                              pop_cntxt();
  2628.                                              free_t(yypvt[-3].t);} break;
  2629. case 224:
  2630. # line 566 "rttgram.y"
  2631. {yyval.n = node1(PrefxNd, yypvt[-2].t, yypvt[-1].n); free_t(yypvt[-0].t);} break;
  2632. case 225:
  2633. # line 568 "rttgram.y"
  2634. {yyval.n = node1(PrefxNd, yypvt[-3].t, node2(CommaNd, yypvt[-1].t, yypvt[-2].n, NULL));
  2635.                           free_t(yypvt[-0].t);} break;
  2636. case 227:
  2637. # line 574 "rttgram.y"
  2638. {yyval.n = node2(CommaNd, yypvt[-1].t, yypvt[-2].n, yypvt[-0].n);} break;
  2639. case 230:
  2640. # line 583 "rttgram.y"
  2641. {push_cntxt(1);} break;
  2642. case 231:
  2643. # line 583 "rttgram.y"
  2644. {yyval.n = yypvt[-0].n; pop_cntxt();} break;
  2645. case 236:
  2646. # line 589 "rttgram.y"
  2647. {yyval.n = node2(BinryNd, yypvt[-4].t, yypvt[-2].n, NULL); free_t(yypvt[-3].t); free_t(yypvt[-1].t);} break;
  2648. case 237:
  2649. # line 591 "rttgram.y"
  2650. {yyval.n = node2(BinryNd, yypvt[-6].t, yypvt[-4].n, yypvt[-2].n); free_t(yypvt[-5].t); free_t(yypvt[-3].t); free_t(yypvt[-1].t);} break;
  2651. case 238:
  2652. # line 595 "rttgram.y"
  2653. {yyval.n = node2(BinryNd, yypvt[-1].t, yypvt[-2].n, yypvt[-0].n);} break;
  2654. case 239:
  2655. # line 596 "rttgram.y"
  2656. {yyval.n = node2(BinryNd, yypvt[-3].t, yypvt[-2].n, yypvt[-0].n); free_t(yypvt[-1].t);} break;
  2657. case 240:
  2658. # line 597 "rttgram.y"
  2659. {yyval.n = node1(PrefxNd, yypvt[-2].t, yypvt[-0].n); free_t(yypvt[-1].t);} break;
  2660. case 241:
  2661. # line 601 "rttgram.y"
  2662. {yyval.n = comp_nd(yypvt[-2].t, NULL, yypvt[-1].n); free_t(yypvt[-0].t);} break;
  2663. case 242:
  2664. # line 602 "rttgram.y"
  2665. {yyval.n = comp_nd(yypvt[-3].t, yypvt[-2].n,   yypvt[-1].n); free_t(yypvt[-0].t);} break;
  2666. case 244:
  2667. # line 607 "rttgram.y"
  2668. {yyval.n = node2(LstNd, NULL, yypvt[-1].n, yypvt[-0].n);} break;
  2669. case 245:
  2670. # line 611 "rttgram.y"
  2671. {yyval.n = NULL;} break;
  2672. case 248:
  2673. # line 617 "rttgram.y"
  2674. {yyval.n = (yypvt[-0].n == NULL ? yypvt[-1].n : node2(LstNd, NULL, yypvt[-1].n, yypvt[-0].n));} break;
  2675. case 250:
  2676. # line 623 "rttgram.y"
  2677. {yyval.n = NULL; free_t(yypvt[-3].t); free_t(yypvt[-0].t); dcl_stk->kind_dcl = OtherDcl;} break;
  2678. case 251:
  2679. # line 627 "rttgram.y"
  2680. {tnd_char(); free_t(yypvt[-0].t);} break;
  2681. case 252:
  2682. # line 628 "rttgram.y"
  2683. {tnd_strct(yypvt[-0].t); free_t(yypvt[-1].t);} break;
  2684. case 253:
  2685. # line 629 "rttgram.y"
  2686. {tnd_strct(yypvt[-0].t); free_t(yypvt[-1].t);} break;
  2687. case 254:
  2688. # line 630 "rttgram.y"
  2689. {tnd_union(yypvt[-0].t); free_t(yypvt[-1].t);} break;
  2690. case 256:
  2691. # line 635 "rttgram.y"
  2692. {yyval.n = node2(ConCatNd, NULL, yypvt[-1].n, yypvt[-0].n);} break;
  2693. case 257:
  2694. # line 639 "rttgram.y"
  2695. {yyval.n = NULL;} break;
  2696. case 259:
  2697. # line 643 "rttgram.y"
  2698. {yyval.n = node1(PstfxNd, yypvt[-0].t, yypvt[-1].n);} break;
  2699. case 260:
  2700. # line 647 "rttgram.y"
  2701. {yyval.n = node3(TrnryNd, yypvt[-4].t, yypvt[-2].n, yypvt[-0].n,NULL);
  2702.                                           free_t(yypvt[-3].t); free_t(yypvt[-1].t);} break;
  2703. case 261:
  2704. # line 649 "rttgram.y"
  2705. {yyval.n = node3(TrnryNd, yypvt[-6].t, yypvt[-4].n, yypvt[-2].n, yypvt[-0].n);
  2706.                                           free_t(yypvt[-5].t); free_t(yypvt[-3].t); free_t(yypvt[-1].t);} break;
  2707. case 262:
  2708. # line 651 "rttgram.y"
  2709. {yyval.n = node2(BinryNd, yypvt[-4].t, yypvt[-2].n, yypvt[-0].n);
  2710.                                           free_t(yypvt[-3].t); free_t(yypvt[-1].t);} break;
  2711. case 263:
  2712. # line 654 "rttgram.y"
  2713. {yyval.n = node3(TrnryNd, yypvt[-6].t, yypvt[-5].n, yypvt[-2].n, yypvt[-1].n); free_t(yypvt[-4].t); free_t(yypvt[-3].t); free_t(yypvt[-0].t);} break;
  2714. case 264:
  2715. # line 658 "rttgram.y"
  2716. {yyval.n = node2(ConCatNd, NULL, NULL, yypvt[-0].n);} break;
  2717. case 265:
  2718. # line 659 "rttgram.y"
  2719. {yyval.n = node2(ConCatNd, NULL,   yypvt[-1].n, yypvt[-0].n);} break;
  2720. case 266:
  2721. # line 663 "rttgram.y"
  2722. {yyval.n = node2(ConCatNd, NULL, yypvt[-1].n, yypvt[-0].n);} break;
  2723. case 267:
  2724. # line 667 "rttgram.y"
  2725. {yyval.n = NULL;} break;
  2726. case 268:
  2727. # line 668 "rttgram.y"
  2728. {yyval.n = yypvt[-0].n; free_t(yypvt[-2].t); free_t(yypvt[-1].t);} break;
  2729. case 269:
  2730. # line 672 "rttgram.y"
  2731. {yyval.n = node2(BinryNd, yypvt[-4].t, yypvt[-2].n, yypvt[-0].n);
  2732.                                         free_t(yypvt[-3].t); free_t(yypvt[-1].t);} break;
  2733. case 270:
  2734. # line 674 "rttgram.y"
  2735. {yyval.n = node2(BinryNd, yypvt[-6].t, yypvt[-5].n, yypvt[-2].n);
  2736.                                         free_t(yypvt[-4].t); free_t(yypvt[-3].t); free_t(yypvt[-1].t);
  2737.                                         free_t(yypvt[-0].t);} break;
  2738. case 271:
  2739. # line 678 "rttgram.y"
  2740. {yyval.n = node4(QuadNd, yypvt[-8].t, yypvt[-6].n, yypvt[-4].n, yypvt[-2].n, yypvt[-0].n);
  2741.                                         free_t(yypvt[-7].t); free_t(yypvt[-5].t); free_t(yypvt[-3].t);
  2742.                                         free_t(yypvt[-1].t);} break;
  2743. case 272:
  2744. # line 684 "rttgram.y"
  2745. {yyval.n = node1(PrefxNd, yypvt[-2].t, yypvt[-1].n); free_t(yypvt[-0].t);} break;
  2746. case 273:
  2747. # line 685 "rttgram.y"
  2748. {yyval.n = node0(PrimryNd, yypvt[-1].t); free_t(yypvt[-0].t);} break;
  2749. case 274:
  2750. # line 686 "rttgram.y"
  2751. {yyval.n = node0(PrimryNd, yypvt[-1].t); free_t(yypvt[-0].t);} break;
  2752. case 275:
  2753. # line 687 "rttgram.y"
  2754. {yyval.n = node1(PrefxNd, yypvt[-2].t, yypvt[-1].n); free_t(yypvt[-0].t);} break;
  2755. case 276:
  2756. # line 688 "rttgram.y"
  2757. {yyval.n = node1(PrefxNd, yypvt[-2].t, yypvt[-1].n); free_t(yypvt[-0].t);} break;
  2758. case 277:
  2759. # line 689 "rttgram.y"
  2760. {yyval.n = node0(PrimryNd, yypvt[-1].t); free_t(yypvt[-0].t);} break;
  2761. case 278:
  2762. # line 690 "rttgram.y"
  2763. {yyval.n = node0(PrimryNd, yypvt[-1].t); free_t(yypvt[-0].t);} break;
  2764. case 284:
  2765. # line 705 "rttgram.y"
  2766. {dclout(yypvt[-0].n);} break;
  2767. case 286:
  2768. # line 710 "rttgram.y"
  2769. {func_def(yypvt[-0].n);} break;
  2770. case 287:
  2771. # line 711 "rttgram.y"
  2772. {fncout(yypvt[-3].n, yypvt[-1].n, yypvt[-0].n);} break;
  2773. case 288:
  2774. # line 715 "rttgram.y"
  2775. {yyval.n = node2(LstNd, NULL, NULL, yypvt[-0].n);} break;
  2776. case 289:
  2777. # line 716 "rttgram.y"
  2778. {yyval.n = node2(LstNd, NULL, yypvt[-1].n, yypvt[-0].n);} break;
  2779. case 290:
  2780. # line 717 "rttgram.y"
  2781. {yyval.n = node2(LstNd, NULL, yypvt[-1].n, yypvt[-0].n);} break;
  2782. case 291:
  2783. # line 721 "rttgram.y"
  2784. {yyval.n = node0(PrimryNd, yypvt[-0].t);} break;
  2785. case 292:
  2786. # line 722 "rttgram.y"
  2787. {yyval.n = node0(PrimryNd, yypvt[-0].t);} break;
  2788. case 293:
  2789. # line 726 "rttgram.y"
  2790. {yyval.n = lbl(yypvt[-0].t);} break;
  2791. case 294:
  2792. # line 727 "rttgram.y"
  2793. {yyval.n = lbl(yypvt[-0].t);} break;
  2794. case 299:
  2795. # line 742 "rttgram.y"
  2796. {strt_def();} break;
  2797. case 301:
  2798. # line 746 "rttgram.y"
  2799. {defout(yypvt[-1].n); free_t(yypvt[-0].t);} break;
  2800. case 302:
  2801. # line 747 "rttgram.y"
  2802. {defout(yypvt[-1].n); free_t(yypvt[-0].t);} break;
  2803. case 303:
  2804. # line 748 "rttgram.y"
  2805. {keyconst(yypvt[-1].t); free_t(yypvt[-2].t); free_t(yypvt[-0].t);} break;
  2806. case 304:
  2807. # line 752 "rttgram.y"
  2808. {comment = NULL;} break;
  2809. case 305:
  2810. # line 753 "rttgram.y"
  2811. {comment = yypvt[-0].t;} break;
  2812. case 306:
  2813. # line 758 "rttgram.y"
  2814. {impl_fnc(yypvt[-3].t); free_t(yypvt[-7].t); free_t(yypvt[-6].t); free_t(yypvt[-4].t); free_t(yypvt[-2].t);
  2815.        free_t(yypvt[-0].t);} break;
  2816. case 307:
  2817. # line 760 "rttgram.y"
  2818. {lex_state = OpHead;} break;
  2819. case 308:
  2820. # line 761 "rttgram.y"
  2821. {lex_state = DfltLex;} break;
  2822. case 309:
  2823. # line 762 "rttgram.y"
  2824. {impl_op(yypvt[-5].t, yypvt[-3].t); free_t(yypvt[-10].t); free_t(yypvt[-9].t); free_t(yypvt[-6].t); free_t(yypvt[-2].t);
  2825.        free_t(yypvt[-0].t);} break;
  2826. case 310:
  2827. # line 767 "rttgram.y"
  2828. {impl_key(yypvt[-0].t); free_t(yypvt[-4].t); free_t(yypvt[-3].t); free_t(yypvt[-1].t);} break;
  2829. case 386:
  2830. # line 861 "rttgram.y"
  2831. {set_r_seq(NoRsltSeq, NoRsltSeq, 0);} break;
  2832. case 387:
  2833. # line 862 "rttgram.y"
  2834. {set_r_seq(yypvt[-1].i, yypvt[-1].i, (int)yypvt[-0].i);} break;
  2835. case 388:
  2836. # line 863 "rttgram.y"
  2837. {set_r_seq(yypvt[-3].i, yypvt[-1].i, (int)yypvt[-0].i); free_t(yypvt[-2].t);} break;
  2838. case 389:
  2839. # line 867 "rttgram.y"
  2840. {yyval.i = ttol(yypvt[-0].t); free_t(yypvt[-0].t);} break;
  2841. case 390:
  2842. # line 868 "rttgram.y"
  2843. {yyval.i = UnbndSeq; free_t(yypvt[-0].t);} break;
  2844. case 391:
  2845. # line 872 "rttgram.y"
  2846. {yyval.i = 0;} break;
  2847. case 392:
  2848. # line 873 "rttgram.y"
  2849. {yyval.i = 1; free_t(yypvt[-0].t);} break;
  2850. case 395:
  2851. # line 879 "rttgram.y"
  2852. {var_args(yypvt[-1].t); free_t(yypvt[-2].t); free_t(yypvt[-0].t);} break;
  2853. case 397:
  2854. # line 884 "rttgram.y"
  2855. {free_t(yypvt[-1].t);} break;
  2856. case 398:
  2857. # line 888 "rttgram.y"
  2858. {s_prm_def(NULL, yypvt[-0].t);} break;
  2859. case 399:
  2860. # line 889 "rttgram.y"
  2861. {s_prm_def(yypvt[-0].t, NULL); free_t(yypvt[-1].t);} break;
  2862. case 400:
  2863. # line 890 "rttgram.y"
  2864. {s_prm_def(yypvt[-2].t, yypvt[-0].t);   free_t(yypvt[-3].t);
  2865.                                           free((char *)yypvt[-1].t);} break;
  2866. case 401:
  2867. # line 895 "rttgram.y"
  2868. {} break;
  2869. case 402:
  2870. # line 896 "rttgram.y"
  2871. {d_lst_typ(yypvt[-1].n); free_t(yypvt[-3].t); free_t(yypvt[-2].t);
  2872.                                  free_t(yypvt[-0].t);} break;
  2873. case 403:
  2874. # line 901 "rttgram.y"
  2875. {yyval.n = NULL;} break;
  2876. case 406:
  2877. # line 907 "rttgram.y"
  2878. {yyval.n = node2(ConCatNd, NULL, yypvt[-1].n, yypvt[-0].n);} break;
  2879. case 410:
  2880. # line 914 "rttgram.y"
  2881. {yyval.n = node1(PrefxNd, yypvt[-2].t, yypvt[-1].n); free_t(yypvt[-0].t);} break;
  2882. case 411:
  2883. # line 915 "rttgram.y"
  2884. {lex_state = TypeComp;} break;
  2885. case 412:
  2886. # line 916 "rttgram.y"
  2887. {lex_state = DfltLex;} break;
  2888. case 413:
  2889. # line 917 "rttgram.y"
  2890. {yyval.n = yypvt[-2].n; free_t(yypvt[-5].t); free_t(yypvt[-3].t); free_t(yypvt[-0].t);} break;
  2891. case 414:
  2892. # line 922 "rttgram.y"
  2893. {yyval.n = node3(TrnryNd, yypvt[-3].t, yypvt[-2].n, yypvt[-0].n, NULL); free_t(yypvt[-1].t);} break;
  2894. case 415:
  2895. # line 924 "rttgram.y"
  2896. {yyval.n = node3(TrnryNd, yypvt[-5].t, yypvt[-4].n, yypvt[-2].n, yypvt[-0].n); free_t(yypvt[-3].t); free_t(yypvt[-1].t);} break;
  2897. case 416:
  2898. # line 926 "rttgram.y"
  2899. {yyval.n = node3(TrnryNd, yypvt[-6].t, yypvt[-5].n, yypvt[-2].n, yypvt[-1].n); free_t(yypvt[-4].t); free_t(yypvt[-3].t); free_t(yypvt[-0].t);} break;
  2900. case 417:
  2901. # line 928 "rttgram.y"
  2902. {yyval.n = node3(TrnryNd, yypvt[-8].t, var_node(yypvt[-7].t), yypvt[-4].n, yypvt[-1].n); free_t(yypvt[-6].t), free_t(yypvt[-5].t);
  2903.        free_t(yypvt[-3].t); free_t(yypvt[-2].t); free_t(yypvt[-0].t);} break;
  2904. case 418:
  2905. # line 933 "rttgram.y"
  2906. {yyval.n = node2(ConCatNd, NULL, NULL, yypvt[-0].n);} break;
  2907. case 419:
  2908. # line 934 "rttgram.y"
  2909. {yyval.n = node2(ConCatNd, NULL,   yypvt[-1].n, yypvt[-0].n);} break;
  2910. case 420:
  2911. # line 938 "rttgram.y"
  2912. {yyval.n = node2(ConCatNd, NULL, yypvt[-1].n, yypvt[-0].n);} break;
  2913. case 421:
  2914. # line 942 "rttgram.y"
  2915. {yyval.n = NULL;} break;
  2916. case 422:
  2917. # line 943 "rttgram.y"
  2918. {yyval.n = yypvt[-0].n; free_t(yypvt[-2].t); free_t(yypvt[-1].t);} break;
  2919. case 423:
  2920. # line 947 "rttgram.y"
  2921. {yyval.n = node2(ConCatNd, NULL, NULL, yypvt[-1].n);
  2922.                                    free_t(yypvt[-0].t);} break;
  2923. case 424:
  2924. # line 949 "rttgram.y"
  2925. {yyval.n = node2(ConCatNd, NULL,   yypvt[-2].n, yypvt[-1].n);
  2926.                                    free_t(yypvt[-0].t);} break;
  2927. case 426:
  2928. # line 955 "rttgram.y"
  2929. {yyval.n = node2(ConCatNd, NULL, yypvt[-1].n, yypvt[-0].n);} break;
  2930. case 427:
  2931. # line 959 "rttgram.y"
  2932. {yyval.n = node1(PrefxNd, yypvt[-2].t, yypvt[-0].n); free_t(yypvt[-1].t);} break;
  2933. case 429:
  2934. # line 964 "rttgram.y"
  2935. {yyval.n = node1(PrefxNd, yypvt[-1].t, yypvt[-0].n);} break;
  2936. case 431:
  2937. # line 969 "rttgram.y"
  2938. {yyval.n = node2(BinryNd, yypvt[-1].t, yypvt[-2].n, yypvt[-0].n);} break;
  2939. case 432:
  2940. # line 974 "rttgram.y"
  2941. {yyval.n = node2(BinryNd, yypvt[-5].t, yypvt[-3].n, yypvt[-1].n); free_t(yypvt[-4].t); free_t(yypvt[-2].t); free_t(yypvt[-0].t);} break;
  2942. case 433:
  2943. # line 976 "rttgram.y"
  2944. {yyval.n = node3(TrnryNd, yypvt[-5].t, yypvt[-3].n, yypvt[-1].n, NULL), dst_alloc(yypvt[-3].n, yypvt[-1].n); free_t(yypvt[-4].t);
  2945.        free_t(yypvt[-2].t); free_t(yypvt[-0].t);} break;
  2946. case 434:
  2947. # line 979 "rttgram.y"
  2948. {yyval.n = node3(TrnryNd, yypvt[-7].t, yypvt[-5].n, yypvt[-3].n, yypvt[-1].n), free_t(yypvt[-6].t); free_t(yypvt[-4].t); free_t(yypvt[-2].t);
  2949.        free_t(yypvt[-0].t);} break;
  2950. case 435:
  2951. # line 982 "rttgram.y"
  2952. {yyval.n = node4(QuadNd, yypvt[-7].t, yypvt[-5].n, yypvt[-3].n, yypvt[-1].n, NULL), dst_alloc(yypvt[-5].n, yypvt[-3].n); free_t(yypvt[-6].t);
  2953.        free_t(yypvt[-4].t); free_t(yypvt[-2].t); free_t(yypvt[-0].t);} break;
  2954. case 436:
  2955. # line 985 "rttgram.y"
  2956. {yyval.n = node4(QuadNd, yypvt[-9].t, yypvt[-7].n, yypvt[-5].n, yypvt[-3].n, yypvt[-1].n), free_t(yypvt[-8].t); free_t(yypvt[-6].t);
  2957.        free_t(yypvt[-4].t); free_t(yypvt[-2].t); free_t(yypvt[-0].t);} break;
  2958. case 437:
  2959. # line 990 "rttgram.y"
  2960. {push_cntxt(1);} break;
  2961. case 438:
  2962. # line 991 "rttgram.y"
  2963. {yyval.n = node1(PrefxNd, yypvt[-2].t, yypvt[-0].n); pop_cntxt();} break;
  2964. case 439:
  2965. # line 992 "rttgram.y"
  2966. {push_cntxt(1);} break;
  2967. case 440:
  2968. # line 993 "rttgram.y"
  2969. {yyval.n = node1(PrefxNd, yypvt[-2].t, yypvt[-0].n); pop_cntxt();} break;
  2970. case 441:
  2971. # line 998 "rttgram.y"
  2972. {yyval.n = node2(BinryNd, yypvt[-4].t, node0(PrimryNd, yypvt[-2].t), NULL);
  2973.                      free_t(yypvt[-3].t); free_t(yypvt[-1].t);} break;
  2974. case 442:
  2975. # line 1001 "rttgram.y"
  2976. {yyval.n = node2(BinryNd, yypvt[-6].t, node0(PrimryNd, yypvt[-4].t), yypvt[-2].n);
  2977.                      free_t(yypvt[-5].t); free_t(yypvt[-3].t); free_t(yypvt[-1].t);} break;
  2978. case 444:
  2979. # line 1007 "rttgram.y"
  2980. {free_t(yypvt[-0].t);} break;
  2981. case 445:
  2982. # line 1011 "rttgram.y"
  2983. {yyval.n = var_node(yypvt[-0].t);} break;
  2984. case 446:
  2985. # line 1012 "rttgram.y"
  2986. {yyval.n = node2(BinryNd, yypvt[-2].t, var_node(yypvt[-3].t),
  2987.                                     node0(PrimryNd, yypvt[-1].t));
  2988.                                   free_t(yypvt[-0].t);} break;
  2989. case 447:
  2990. # line 1017 "rttgram.y"
  2991. {yyval.n = node0(PrimryNd, yypvt[-0].t);} break;
  2992. case 448:
  2993. # line 1018 "rttgram.y"
  2994. {yyval.n = node0(PrimryNd, yypvt[-0].t);} break;
  2995. case 449:
  2996. # line 1019 "rttgram.y"
  2997. {yyval.n = node0(PrimryNd, yypvt[-0].t);} break;
  2998. case 450:
  2999. # line 1020 "rttgram.y"
  3000. {yyval.n = node0(PrimryNd, yypvt[-0].t);} break;
  3001. case 451:
  3002. # line 1021 "rttgram.y"
  3003. {yyval.n = node0(PrimryNd, yypvt[-0].t);} break;
  3004. case 452:
  3005. # line 1022 "rttgram.y"
  3006. {yyval.n = node0(PrimryNd, yypvt[-0].t);} break;
  3007. case 453:
  3008. # line 1023 "rttgram.y"
  3009. {yyval.n = node0(PrimryNd, yypvt[-0].t);} break;
  3010. case 454:
  3011. # line 1024 "rttgram.y"
  3012. {yyval.n = node0(PrimryNd, yypvt[-0].t); ++n_tmp_str;} break;
  3013. case 455:
  3014. # line 1025 "rttgram.y"
  3015. {yyval.n = node0(PrimryNd, yypvt[-0].t); ++n_tmp_cset;} break;
  3016. case 456:
  3017. # line 1026 "rttgram.y"
  3018. {yyval.n = node0(ExactCnv, yypvt[-0].t); free_t(yypvt[-3].t); free_t(yypvt[-2].t);
  3019.                               free_t(yypvt[-1].t);} break;
  3020. case 457:
  3021. # line 1028 "rttgram.y"
  3022. {yyval.n = node0(ExactCnv, yypvt[-0].t); free_t(yypvt[-3].t); free_t(yypvt[-2].t);
  3023.                               free_t(yypvt[-1].t);} break;
  3024. case 458:
  3025. # line 1033 "rttgram.y"
  3026. {yyval.n = node0(PrimryNd, yypvt[-0].t);} break;
  3027. case 479:
  3028. # line 1060 "rttgram.y"
  3029. {yyval.n = node1(PrefxNd, yypvt[-1].t, yypvt[-0].n);} break;
  3030. case 480:
  3031. # line 1061 "rttgram.y"
  3032. {yyval.n = node1(PrefxNd, yypvt[-1].t, yypvt[-0].n);} break;
  3033. case 481:
  3034. # line 1062 "rttgram.y"
  3035. {yyval.n = node1(PrefxNd, yypvt[-1].t, yypvt[-0].n);} break;
  3036. case 482:
  3037. # line 1066 "rttgram.y"
  3038. {yyval.n = node2(AbstrNd, yypvt[-2].t,   yypvt[-3].n,   yypvt[-1].n);} break;
  3039. case 483:
  3040. # line 1067 "rttgram.y"
  3041. {yyval.n = node2(AbstrNd, yypvt[-2].t,   NULL, yypvt[-1].n);} break;
  3042. case 484:
  3043. # line 1068 "rttgram.y"
  3044. {yyval.n = node2(AbstrNd, NULL, yypvt[-0].n, NULL);} break;
  3045. case 486:
  3046. # line 1073 "rttgram.y"
  3047. {yyval.n = node2(ConCatNd, NULL, yypvt[-1].n, yypvt[-0].n);} break;
  3048. case 487:
  3049. # line 1077 "rttgram.y"
  3050. {yyval.n = node2(BinryNd, yypvt[-2].t, yypvt[-4].n, yypvt[-1].n);
  3051.                                            free_t(yypvt[-6].t); free_t(yypvt[-5].t); free_t(yypvt[-3].t);} break;
  3052. case 489:
  3053. # line 1083 "rttgram.y"
  3054. {yyval.n = node2(BinryNd, yypvt[-1].t, yypvt[-2].n, yypvt[-0].n);} break;
  3055. case 490:
  3056. # line 1084 "rttgram.y"
  3057. {yyval.n = node2(BinryNd, yypvt[-1].t, yypvt[-2].n, yypvt[-0].n);} break;
  3058. case 491:
  3059. # line 1087 "rttgram.y"
  3060. {yyval.n = node1(IcnTypNd, NULL, yypvt[-0].n);} break;
  3061. case 492:
  3062. # line 1088 "rttgram.y"
  3063. {yyval.n = node1(PrefxNd, yypvt[-3].t, yypvt[-1].n);
  3064.                                          free_t(yypvt[-2].t); free_t(yypvt[-0].t);} break;
  3065. case 493:
  3066. # line 1090 "rttgram.y"
  3067. {yyval.n = node2(BinryNd, yypvt[-4].t, yypvt[-3].n, yypvt[-1].n);
  3068.                                          free_t(yypvt[-2].t); free_t(yypvt[-0].t);} break;
  3069. case 494:
  3070. # line 1092 "rttgram.y"
  3071. {yyval.n = node1(PrefxNd, yypvt[-3].t, yypvt[-1].n);
  3072.                                          free_t(yypvt[-2].t); free_t(yypvt[-0].t);} break;
  3073. case 495:
  3074. # line 1094 "rttgram.y"
  3075. {yyval.n = node1(PstfxNd, yypvt[-0].t, yypvt[-2].n); 
  3076.                                          free_t(yypvt[-1].t);} break;
  3077. case 496:
  3078. # line 1096 "rttgram.y"
  3079. {yyval.n = yypvt[-1].n; free_t(yypvt[-2].t); free_t(yypvt[-0].t);} break;
  3080. case 499:
  3081. # line 1105 "rttgram.y"
  3082. {yyval.n = node2(CommaNd, yypvt[-1].t, yypvt[-2].n, yypvt[-0].n);} break;
  3083.     }
  3084.     goto yystack;        /* reset registers in driver code */
  3085. }
  3086.